【发布时间】:2020-05-18 17:34:38
【问题描述】:
我想捕捉包含以下模式的行: 单词1,单词2,^word3$,单词4
我想检查该行中的第三个单词是否等于 word3,使用 awk 时,^ 和 $ 符号总是在第三列中。 像这样:
less file.txt | awk '{if ($3=="^word3$") {print $0}}'
这将打印该行,我只是无法用 ^ 和 $ 符号抓取单词。
我该怎么做? (我必须用awk,因为原来的命令比较复杂,不能用grep)
谢谢!
【问题讨论】:
-
当你的正则表达式中有有趣的字符时,将它们括在方括号中总是安全的:
[^]word3[$] -
是您从文字字符串
"^word3$"中提取"word3"的问题吗?