有没有办法用AWK打印regexp匹配?

有没有办法用AWK打印regexp匹配?,awk,gawk,Awk,Gawk,我想检查特定字符串“20040213_25049.XXXX”是否包含XXXX,另一方面,当我写入类似“20040213_25049.XXXX”的字符串时,它是匹配的,但我想与“20040213_25049.XXXX”匹配 我没有从上述行获得任何输出。您可以执行以下操作: echo "20040213_25049.XXXX" | awk '/[0-9]{8}_[0-9]{5}\.XXXX/ {print "yes"}' yes 它将测试您是否有5位数字后跟和4位X 还是像这样 echo "200

我想检查特定字符串“20040213_25049.XXXX”是否包含XXXX,另一方面,当我写入类似“20040213_25049.XXXX”的字符串时,它是匹配的,但我想与“20040213_25049.XXXX”匹配


我没有从上述行获得任何输出。

您可以执行以下操作:

echo "20040213_25049.XXXX" | awk '/[0-9]{8}_[0-9]{5}\.XXXX/ {print "yes"}'
yes
它将测试您是否有
5位
数字后跟
和4位
X

还是像这样

echo "20040213_25049.XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}'
yes

echo "20040213_25049. XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}'

您正在匹配第二个字段。没有第二个字段。。。。我猜您刚刚复制了这段代码,完全不知道它是如何工作的。看JID@thnx对于您的回复,基本上我正在尝试将子字符串XXXX与“20040213_25049.XXXX”匹配,但无法匹配。另一方面,当我这样写“20040213_25049.XXXX”时,我能够匹配。您希望得到什么作为输出/结果<代码>是/否,
XXXX
本身?或者说,
XXXX
代表你想要得到的数字吗?我知道你想做什么。如果你看了我发布的链接,并且对awk的工作原理有了基本的了解,那么你就能够做到。@Jotne他们显然一点也不努力,甚至不了解awk中字段的概念。甚至连OP要求的内容都不了解。Mybe你应该等待他们回答你的问题,而不是急于回答你的问题虚点数。@JID它这样做
我想检查特定字符串“20040213_25049.XXXX”是否包含XXXX
它不
是否有方法打印与AWK匹配的regexp?
echo "20040213_25049.XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}'
yes

echo "20040213_25049. XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}'