是否可以删除这一行中的 cut 命令,而不用管道传输到另一个命令?
awk 'NR > 1 {print l}{l=$2}' filename | cut -d':' -f2
详细信息,如果您想要或需要的话:
[这是一个兴趣问题而不是必要问题 - 我可以/确实使用cut
上面的方法来轻松完成工作]
我能够获得第二列,同时忽略文件的最后一行NR > 1{print l}{l=$2}
。
基本上它是一个平面文件数据库(注意最后一行非数据内容),我需要每个值field1
:
$ cat file
1 field1:value1 field2:value2 ...
.
.
.
N field1:value1 field2:value2 ...
other.parseable info.that is.unnecessary to.me
尝试该-F
标志不起作用,因为它似乎更改了列号,因为它首先执行“剪切”:
$ awk -F ':' 'NR > 1 {print l}{l=$2}' file
value1 field2
value1 field2
...
答案1
您可以使用split
的功能awk
。
awk '{ split($2, var, /:/ ); print var[2] }'
或者使用多个分隔符:
awk -F'[ :]+' '{print $3}'