gsub(pattern, replacement, target): 允许一个变量用于pattern,但不允许我做正则表达式。
gsub(/pattern/, replacement, target): 让我做正则表达式,但我不能为pattern.
有没有办法同时使用可变模式和正则表达式gsub?我想坚持使用 awk,没有 sed 或 shell。
您可以使用包含正则表达式的变量:
$ awk 'BEGIN { re = "[abc]" } { gsub(re, "X"); print }' <<< '1a2b3c'
1X2X3X
Run Code Online (Sandbox Code Playgroud)
但引用可能会变得复杂,请参阅gawk 手册中的使用动态正则表达式。