我有一组数据,看起来像这样:尴尬:组合两个awk的语句
foo:123 bar baz
oof:2983 rab zdo
mor:8 eoinn uiemdh
什么,我想有作为的结果是:
123
2983
8
假设数据在一个名为test.txt的文件中,我现在拥有的是:
awk '{print $1}' test.txt | awk -F: '{print $2}'
如何组合这两条语句?
我有一组数据,看起来像这样:尴尬:组合两个awk的语句
foo:123 bar baz
oof:2983 rab zdo
mor:8 eoinn uiemdh
什么,我想有作为的结果是:
123
2983
8
假设数据在一个名为test.txt的文件中,我现在拥有的是:
awk '{print $1}' test.txt | awk -F: '{print $2}'
如何组合这两条语句?
你可以用sed的字段分隔符正则表达式:
awk -F' |:' '{print $2}' file
123
2983
8
简而言之,你不能。但是你可以使用广泛的模式匹配设施,做你想做的:
awk '{ tmp = $1; sub(/^.*:/, "", tmp); print tmp; }' test.txt
确认!我在现场声明中忘记了正则表达式!我收回我的“你不能”声明.... – carveone
不知道这是可能的。这很甜蜜! – user857990
作为字段分隔符的正则表达式是gnu扩展(cc @carveone) – Kevin