awk gensub匹配错误的号码

时间:2018-01-04 08:55:15

标签: regex bash awk

我试图匹配1st []中的内容,但总是得到最后一个。表达中有什么不对? 顺便说一句,其他领域也是必需的,所以awk是首选。

echo "[a1 b1] [a2 b2]" | awk '{p=gensub(/.*\[(.*?)\].*/,"\\1",1); print p}'

想要" a1 b1",但得到" a2 b2"。谢谢!

1 个答案:

答案 0 :(得分:1)

关注awk可能对您有帮助。

echo "[a1 b1] [a2 b2]" | awk -F"[][]" '{print $2}'

说明: 只需将][作为字段分隔符,然后打印第二个字段,因为字段将按照上述字段分隔符进行划分。