尴尬:结合两个awk语句

时间:2014-04-13 17:24:39

标签: awk separator

我有一组看起来像这样的数据:

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}'

如何将这两个陈述合并?

3 个答案:

答案 0 :(得分:4)

您可以将字段分隔符发送到正则表达式:

awk -F' |:' '{print $2}' file
123
2983
8

答案 1 :(得分:1)

简而言之,你不能。但是你可以使用广泛的模式匹配工具来做你想做的事情:

awk '{ tmp = $1; sub(/^.*:/, "", tmp); print tmp; }' test.txt

答案 2 :(得分:1)

简短awk

awk -F' |:' '{$0=$2}1' file
123
2983
8