是否有可能摆脱这一行中的 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
Run Code Online (Sandbox Code Playgroud)
尝试该-F
标志不起作用,因为它似乎更改了列号,因为它首先执行“剪切”:
$ awk -F ':' 'NR > 1 {print l}{l=$2}' file
value1 field2
value1 field2
...
Run Code Online (Sandbox Code Playgroud)
您可以使用split
的功能awk
。
awk '{ split($2, var, /:/ ); print var[2] }'
Run Code Online (Sandbox Code Playgroud)
或者使用多个分隔符:
awk -F'[ :]+' '{print $3}'
Run Code Online (Sandbox Code Playgroud)