我很好奇是否可以使用awk检索孤立的字段,还可以检索包含多个相邻字段和封闭分隔符的原始字符串的一部分?
例如,在
上使用awk时foo.bar.baz.test
使用'.'
分隔符,并告诉awk提取字段2和3,我希望能够检索
bar.baz
自动。我知道我可以手工重新构造字符串的一部分,但这感觉不对。
想法?
答案 0 :(得分:2)
这可能对您有用:
echo foo.bar.baz.test | awk -F. -vOFS=. '{print $2,$3}'
bar.baz
打印命令中的,
是输出字段分隔符(OFS)的简写。
答案 1 :(得分:2)
我不确定这是否是你想要的:
kent$ echo "foo.bar.baz.test"|awk 'BEGIN{FS=OFS="."}{print $2,$3}'
bar.baz
修改强>
我需要将它推广到未知数量的字段(没有硬编码 2美元,3美元,但一切从2美元开始直到结束 - 就是这样 可能的?)
见下面的测试:
kent$ echo "a.b.c.d.e.f.g.h.j.foo.bar"|awk 'BEGIN{FS=OFS="."}{for(i=2;i<=NF;i++)s=i==NF?s $i:s $i OFS;print s}'
b.c.d.e.f.g.h.j.foo.bar