awk中的通配符

时间:2015-04-11 13:36:56

标签: bash awk

我在尝试选择awk中的特定数据行时遇到了一些问题。我希望数据从FWA20120629开始,然后有4个我不在乎的数字,然后是18,19或20,然后是另外两个我不在乎的字符。我试过这个:

awk '{if ($2 ~ /FWA20120629....[18-20]../) print $2,$5,$6}' ...

awk '{if ($2 ~ /FWA20120629????[18-20]??/) print $2,$5,$6}' ...

符合此条件的示例行是

  

FWA2012062903001800

我明显遗漏了一些东西,而且我对awk不太熟悉,无法弄明白。

1 个答案:

答案 0 :(得分:3)

[...]是正则表达式中的字符类。 [18-20]与18到20之间的所有数字都不匹配,它与字符1匹配,所有字符在8和2之间(这是无意义的)和字符0。

尝试(18|19|20),如果那就是你想要的。