我想打印awk中倒数第二列或字段。字段的数量是NF变量。我知道我应该能够使用$NF,但我不确定如何使用它。
但这似乎并不奏效:
awk ' { print ( $NF-- ) } '
我想打印awk中倒数第二列或字段。字段的数量是NF变量。我知道我应该能够使用$NF,但我不确定如何使用它。
但这似乎并不奏效:
awk ' { print ( $NF-- ) } '
当前回答
类似于Chris Kannon的awk解决方案的Perl解决方案:
perl -lane 'print $F[$#F-1]' file
使用这些命令行选项:
N循环输入文件的每一行,不自动打印每一行 L在处理之前删除换行符,然后再将它们添加回去 自动分割模式-将输入行分割到@F数组中。默认为空格分割 执行perl代码
@F autosplit数组从索引[0]开始,而awk字段以$1开始。 $#F是@F中的元素数
其他回答
类似于Chris Kannon的awk解决方案的Perl解决方案:
perl -lane 'print $F[$#F-1]' file
使用这些命令行选项:
N循环输入文件的每一行,不自动打印每一行 L在处理之前删除换行符,然后再将它们添加回去 自动分割模式-将输入行分割到@F数组中。默认为空格分割 执行perl代码
@F autosplit数组从索引[0]开始,而awk字段以$1开始。 $#F是@F中的元素数
如果您有很多列,并且希望打印所有列,而不是最后一列的三列,那么这可能会有所帮助
awk '{ $NF=“”;$(NF-1)=“”;$(NF-2)=“” ; print $0 }'
首先递减值,然后打印它
awk ' { print $(--NF)}' file
OR
rev file|cut -d ' ' -f2|rev
日期 美国东部时间2022年7月9日星期六11:57:36 date | gawk '$_=$——NF' | mawk '$!——NF = $ NF '
EDT
awk '{print $(NF-1)}'
应该工作