awk显示除某列(域)外的其他所有列(域)

1、n个列(域)中,如果 想要显示的列较多 而不想显示的列较少
我们如果不想一个个的print $2$3……
可以试一试
cat localhost.access.log | awk '{ $1=""; $5=""; print $0 }'
cat localhost.access.log | awk '{ $1=""; $5="";$NF=""; print $0 }'
2、另外,如果我要打印某列以后的所有列的,可以使用循环,把前N列都赋值为空:
cat localhost.access.log | awk '{ for(i=1; i<=2; i++){ $i="" }; print $0 }'
显示中间列
cat localhost.access.log | awk '{ for(i=3; i<=(NF-2); i++){ $i="" }; print $0 }'
3、其他格式
显示倒数第二列
cat localhost.access.log | awk '{print $(NF-1)}'
显示连续列
cat localhost.access.log | awk '{for(i=2; i<=5; i++)printf $i" "; print "" }'

You may also like...

发表评论