Chinaunix
标题:
求教,请问怎么输出某列到N列的数据?
[打印本页]
作者:
hello163mailcom
时间:
2015-01-22 09:41
标题:
求教,请问怎么输出某列到N列的数据?
本帖最后由 hello163mailcom 于 2015-01-22 09:42 编辑
原格式大概是这样:
09:34:07 device %busy avque r+w/s blks/s avwait avserv
09:34:08 c2t1d0 0.99 0.50 1 4 0.00 8.10
c3t0d0 0.99 0.50 1 4 0.00 10.75
……
09:35:08 c2t1d0 0.99 0.50 1 4 0.00 10.75
……
希望能这样输出:
device %busy avque r+w/s blks/s avwait avserv
c2t1d0 0.99 0.50 1 4 0.00 8.10
c3t0d0 0.99 0.50 1 4 0.00 10.75
……
c2t1d0 0.99 0.50 1 4 0.00 10.75
……
作者:
关阴月飞
时间:
2015-01-22 09:55
本帖最后由 关阴月飞 于 2015-01-22 09:58 编辑
回复
1#
hello163mailcom
目测一下:意思就是把第一列的时间去掉?
awk 'NF>7{$1=""}{$0=$0;$1=$1}1' urfile
作者:
mvplove123
时间:
2015-01-22 09:58
awk '{print $2,$3,$4,$5,$6,$7,$8}' test
作者:
reyleon
时间:
2015-01-22 10:00
awk 'NF>7{$1=""}NF+=0' file | column -t
复制代码
作者:
hello163mailcom
时间:
2015-01-22 10:21
本帖最后由 hello163mailcom 于 2015-01-22 10:23 编辑
回复
2#
关阴月飞
谢谢大神。再请教下。如果我想把前面的几行也排除怎么写?
最原始的格式是这样的(通过sar -d 1输出得到的):
HP-UX hpdb B.11.31
10:15:14 device %busy avque r+w/s blks/s avwait avserv
10:15:15 c2t1d0 2.94 0.50 6 39 0.00 9.93
c3t0d0 2.94 0.50 4 31 0.00 7.95
sar -d 1 | awk 'NR>4,NF>7{$1=""}{$0=$0;$1=$1}1' > hpsardinfo.txt,这样好像不行;另外有时候输出的格式会是这样:
HP-UX hpdb B.11.31
10:15:14 device %busy avque r+w/s blks/s avwait avserv
10:15:15
想做到如果没数据的话,就不处理
作者:
sky_eminem
时间:
2015-01-22 10:45
sed -e 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//' inputfile
作者:
songyc_2015
时间:
2015-01-27 21:21
1.借用写pf大神的方法:
$awk 'NR>4{if(NF>7){$1=""}{$0=$0;$1=$1}print}' g.txt
c2t1d0 2.94 0.50 6 39 0.00 9.93
c3t0d0 2.94 0.50 4 31 0.00 7.95
2.自己凑下热闹:
$awk 'FNR>4{{sub(/[^ ]* +/,"")}print}' g.txt
c2t1d0 2.94 0.50 6 39 0.00 9.93
c3t0d0 2.94 0.50 4 31 0.00 7.95
$cat g.txt
HP-UX hpdb B.11.31
10:15:14 device %busy avque r+w/s blks/s avwait avserv
10:15:15 c2t1d0 2.94 0.50 6 39 0.00 9.93
c3t0d0 2.94 0.50 4 31 0.00 7.95
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2