有这样一个文本,需要截取前5行
1[root@SH]# cat test.txt 2 2 3651415576 940761 0 0 0000000000000000 3 3 3532686312 939551 0 0 0000000000000000 4 4 3873453656 984285 0 0 0000000000000000 5 5 3884604640 970761 0 0 0000000000000000 6 6 2116906224 493295 0 0 0000000000000000 7 7 1760674752 480700 0 0 0000000000000000 8 8 0 0 29979808 6002 0000000000000000 9 10 0 0 3299944 1433 0000000000000000 10 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