awk 在桌面和服务器上以不同的方式工作

dye*_*fox 8 awk

只是一个简单的问题。

为什么这个 bash 命令在 Ubuntu 服务器上可以正常工作并找出 ISBN 代码,但在我的 Ubuntu 桌面上却不起作用?两个系统都是 22.04 LTS。

echo "ISBN 5-02-013850-9" | awk '/ISBN [0-9]{1}-[0-9]{2}-[0-9]{6}-[Xx0-9]{1}/ {print $0}'
Run Code Online (Sandbox Code Playgroud)

提前致谢。

ste*_*ver 9

可能其中一个正在使用gawk(GNU awk) 而另一个是mawk,它似乎不支持 RE 大括号量词。检查与awk -W version.

mawk似乎是awkUbuntu 22.04 中的默认设置,但如果您随后安装,gawk它将通过该update-alternatives机制进行优先选择。

请参阅内置正则表达式不支持大括号表达式

顺便说一句,[Xx|0-9]可能应该是[Xx0-9](除非您试图匹配文字|)。