菜鸟笔记
提升您的技术认知

awk显示指定行到末尾行之间小技巧

使用awk来显示全部行,可以使用print $0来搞定,如果碰到要显示从第二行到第末尾的话,比如要显示/etc/passwd文件中,从第二列到第末尾的所有行,可以

[root@localhost ~]# cat /etc/passwd | awk -F: 'print $2, $3, $4, $5, $6, $7'

上面的是因为我们知道/etc/passwd就只有7行,可以一行行列出,如果是未知行,或者行数比较多的话,这样写显然不方便。 这个时候就有个小技巧,让第一列设置为空,这样的话,显示所有$0,就不会包含第一列了,而且又不必一行行列出所有列

[root@localhost ~]# cat /etc/passwd | awk -F: '{$1="";sub(' ', ''); print}'
# $1=""          将第一列默认设置为空
# sub('  ', '')  将第一行空出来的空格去掉
# print          等价于print $0