【发布时间】:2017-03-23 21:25:54
【问题描述】:
我试图在对字符串应用拆分后获取字符串的最后一个子字段。当我不知道吐出结果中最后一个字段的值是什么时,问题就出现了。
例如示例数据
hey,there,how,are,you:bla:bla:foo:bar
hey,this,is ,meaningless,text,and ,the,field,are,more:zoo,zoo
hello,folks,thanks,example:is:this:is:a:line:and:I:could:not:think:of:dummy:data
现在我可以使用 NF 获取最后一个字段。
例子:
awk -F, '{print $NF}' input
you:bla:bla:foo:bar
more:zoo,zoo
example:is:this:is:a:line:and:I:could:not:think:of:dummy:data
现在,如果我可以使用split 函数获取任何字段:
awk -F, '{split($NF,a,":");print a[1]}' input
you
more
example
现在我不想要第 N 个字段,我需要提取第 N 个字段的 LAST 子字段。
所以我想要的输出是:
bar
zoo
data
请注意,以下内容没有有用,因为这仅对最后一列有用。
sed -r 's/(^.*:)(.*)/\2/g' inut
bar
zoo
data
【问题讨论】:
-
我可以得到第一列或第二列等等...我需要得到最后一列,比如 NF 用于 coumns,需要在 split 中使用一些东西。
-
是的......
标签: awk