如何在 awk 中使用单词边界而不使用 match() 函数?

2023-12-12

我想向这个 awk 命令添加字边界:

awk '{$0=tolower($0)};/wordA/&&/wordB/ { print FILENAME ":" $0; }' myfile.txt

我尝试添加\y的左侧和右侧wordA and wordB但它在我的测试中不起作用。
我试过这个:/\ywordA\y/&&/\ywordB\y/

谢谢大家!

(ps:我是 awk 的新手,所以我试图避免使用 match() 函数。)


您想使用 gawk 而不是 awk:

gawk '{$0=tolower($0)};/\ywordA\y/&&/\ywordB\y/ { print FILENAME ":" $0; }' myfile.txt

如果您的系统有 gawk(例如在 Mac OS X 上),它将执行您想要的操作。 \y 是 awk 的 GNU 扩展。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 awk 中使用单词边界而不使用 match() 函数? 的相关文章

随机推荐