【Linux】awk想打印除指定列外的所有列

今天偶然研究awk,有一个文件,文件内容是全篇的1 2 3 4 5 6 7 8 9 0 

现在想打印除了第一列以外的所有列

文件内容:

[root@localhost ~]# cat test.txt
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0

执行代码:

awk '{ $1=""; print $0 }' test.txt 

执行的结果是:

[root@localhost ~]# awk '{ $1=""; print $0 }' test.txt 
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0

发现,果然少了第一列

但是如果想少去第二列,可以将$1修改为$2

[root@localhost ~]# awk '{ $2=""; print $0 }' test.txt 
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0
1  3 4 5 6 7 8 9 0

同样,最后一列的话,可以把$2修改为$NF

[root@localhost ~]# awk '{ $NF=""; print $0 }' test.txt 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 

还有一种方法是在awk中写一个循环即可

[root@localhost ~]# awk '{ for(i=1; i<=1; i++){ $i="" }; print $0 }' test.txt 
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0
 2 3 4 5 6 7 8 9 0

同样,如果你想输出$6到最后的话,可以这样写

[root@localhost ~]# awk '{ for(i=1; i<=5; i++){ $i="" }; print $0 }' test.txt 
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0
     6 7 8 9 0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值