AWK输出某几列

有这样一个文本,需要截取前5行

[root@SH]# cat test.txt 
 2      3651415576       940761              0            0 0000000000000000
 3      3532686312       939551              0            0 0000000000000000
 4      3873453656       984285              0            0 0000000000000000
 5      3884604640       970761              0            0 0000000000000000
 6      2116906224       493295              0            0 0000000000000000
 7      1760674752       480700              0            0 0000000000000000
 8               0            0       29979808         6002 0000000000000000
 10              0            0        3299944         1433 0000000000000000
 11              0            0     2199434640       312565 0000000000000000
  • 可以awk '{print $1,$2,$3,$4,$5}
  • 另外一种实现方法awk '{NF-=2}1',这里的1换成别的数字也可以,NF-=2表示倒数第二列
[root@SH]# cat test.txt |awk '{NF-=2}1'
2 3651415576 940761 0
3 3532686312 939551 0
4 3873453656 984285 0
5 3884604640 970761 0
6 2116906224 493295 0
7 1760674752 480700 0
8 0 0 29979808
10 0 0 3299944
11 0 0 2199434640
  • 如果想把多行合成一行,这就是要去掉换行符,可以用xargs
[root@SH-]# cat test.txt |awk '{NF-=2}1'|xargs
2 3651415576 940761 0 3 3532686312 939551 0 4 3873453656 984285 0 5 3884604640 970761 0 6 2116906224 493295 0 7 1760674752 480700 0 8 0 0 29979808 10 0 0 3299944 11 0 0 2199434640

转载于:https://my.oschina.net/u/3746745/blog/1923899

你可能感兴趣的:(awk,操作系统,python)