我在 Linux 上有这个文件:
14:00:01.071 5255 604177
4 14:00:01.074 4608 1415742
14:00:01.074 18398 1122001
2 14:00:01.074 11723 155575
5 14:00:01.075 4695 885808
期望的输出:
14:00:01.071 5255 604177
14:00:01.074 4608 1415742
14:00:01.074 18398 1122001
14:00:01.074 11723 155575
14:00:01.075 4695 885808
使用的命令:
gawk '{ print $NF-1, $NF}' filename
但它只打印最后两列。
答案1
假设
- 分隔符是空格
- 您需要除第一列之外的所有列,该列可能为空,但会有分隔符
- 列之间只有一个分隔符
那么您可以使用cut -d' ' -f2-
空格分隔值文件打印第二列到最后一列的内容。
答案2
这是非常不正确的,$NF-1
会打印最后一列的值减去一。您需要将命令分组在 内(..)
,因为NF
是一个变量
gawk 'NF>=3{ print $(NF-2), $(NF-1), $NF}' file
该部分NF>=3
是为了安全地验证您正在打印保证至少有 3 个字段的行上的最后 3 个字段。
答案3
$ awk '{ print $(NF-2), $(NF-1), $NF}' file1
14:00:01.071 5255 604177
14:00:01.074 4608 1415742
14:00:01.074 18398 1122001
14:00:01.074 11723 155575
14:00:01.075 4695 885808
答案4
我用下面的命令进行了测试,效果很好
sed "s/^[0-9]\{1,\}//g" filename| sed -r "s/^\s+//g"
输出
14:00:01.071 5255 604177
14:00:01.074 4608 1415742
14:00:01.074 18398 1122001
14:00:01.074 11723 155575
14:00:01.075 4695 885808