Ray*_*azi 3 awk string text-processing regular-expression
嗨,我如何使用 gsub 替换带有括号的单词。
这里我想用 ABC/G 替换 ABC(T)
awk ' {gsub("ABC\(T\)","ABC/G")}; Print $0' "$FILENAME" > tmp.tmp && mv tmp.tmp "$FILENAME"
Run Code Online (Sandbox Code Playgroud)
如果您使用以下//格式,您可以简化整个事情gsub:
$ echo "ABC(T)" | awk '{gsub(/ABC\(T\)/,"ABC/G")}; print $0'
ABC/G
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过使用print不带参数(与 相同print $0)或1打印的简写(awk计算结果为 true 的表达式的默认操作,例如1;打印当前行)来进一步简化:
$ echo "ABC(T)" | awk '{gsub(/ABC\(T\)/,"ABC/G")}1'
ABC/G
Run Code Online (Sandbox Code Playgroud)
但是,就我个人而言,我不会使用awk它,其他工具的语法更短更清晰:
$ echo "ABC(T)" | sed 's|ABC(T)|ABC/G|'
ABC/G
$ echo "ABC(T)" | perl -pe 's|ABC\(T\)|ABC/G|'
ABC/G
Run Code Online (Sandbox Code Playgroud)