我在尝试选择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不太熟悉,无法弄明白。
答案 0 :(得分:3)
[...]
是正则表达式中的字符类。 [18-20]
与18到20之间的所有数字都不匹配,它与字符1匹配,所有字符在8和2之间(这是无意义的)和字符0。
尝试(18|19|20)
,如果那就是你想要的。