- 论坛徽章:
- 0
|
本帖最后由 beacon1024 于 2013-11-11 22:27 编辑
# Hostname: BANCS01HADRDB
# Date: Mon May 27 12:36:01 CST 2013
# Uptime: 12:36PM up 25 days, 12:25, 2 users
# Hostname: PIPRDAP1
# RunDate: Thu Aug 29 15:58:36 CST 2013
# Uptime: 03:58:49 up 4 days, 16:51:20, 1 user
# Hostname: localhost
# RunDate: Thu Aug 29 15:57:58 CST 2013
# Uptime: 03:57PM up 7 days, 22:33, 1 user
# Hostname: BANCS02APP
# Date: Thu May 16 18:09:31 CST 2013
# Uptime: 06:09PM up 14 days, 18:01, 1 user
# Hostname: BANCS02XSAPP
# Date: Thu May 16 18:40:46 CST 2013
# Uptime: 06:40PM up 14 days, 18:30, 1 user
我有这些输出,现在想把第一个冒号“:”左边的所有文本都向左对齐,站位10个字符,其他全部向右对齐,类似如下:
# Hostname: BANCS01HADRDB
# Date: Mon May 27 12:36:01 CST 2013
# Uptime: 12:36PM up 25 days, 12:25, 2 users
# Hostname: PIPRDAP1
# RunDate: Thu Aug 29 15:58:36 CST 2013
# Uptime: 03
# Hostname: localhost
# RunDate: Thu Aug 29 15:57:58 CST 2013
# Uptime: 03:57PM up 7 days, 22:33, 1 user
# Hostname: BANCS02APP
# Date: Thu May 16 18:09:31 CST 2013
# Uptime: 06:09PM up 14 days, 18:01, 1 user
# Hostname: BANCS02XSAPP
# Date: Thu May 16 18:40:46 CST 2013
# Uptime: 06:40PM up 14 days, 18:30, 1 user
但是我用awk这样实现
awk -F: '/^#/&&NF==4{printf "%-13s%s%s%s\n",$1":",$2,":"$3,":"$4;next}
/^#/&&NF==1{printf "%-13s%s\n",$1,$2;next}
/^#/{printf "%-13s%s\n",$1":",$2;next}{print " "$0}'
但是发现如果冒号数量不一样,会出现异常,比如第六行就不对了。
简单来说就是,不管有多少个冒号“:”,用”:“做分隔符,第一个字段左对齐,后面全部右对齐!
# Uptime: 03:58:49 up 4 days, 16:51:20, 1 user
怎么实现啊?各位指教,在线等! |
|