awk - 正则表达式中的变量扩展

3 regex awk

为什么这样的事情不起作用:

echo 4 | awk --assign=abc=4 '/$abc/'
Run Code Online (Sandbox Code Playgroud)

实际的例子要复杂得多。基本上我有一个正则表达式,我需要重复几次,所以我将它存储在abc. 有什么方法可以扩展 awk 变量/<regex>/吗?我试过单引号和双引号,每种组合。我真的需要那一行是单引号,因为我有几个双引号,它实际上看起来更像awk --assign=test=something '/$test/ { a lot of stuff here inc $test several times with double quotes; }'

anu*_*ava 5

awk 在//regex之间不使用变量:

以下等效项将使用~正则表达式运算符产生相同的效果:

echo 4 | awk --assign=abc=4 '$0 ~ abc'
4
Run Code Online (Sandbox Code Playgroud)

  • 我发现 gawk 手册很难浏览。不过我发现 http://www.gnu.org/software/gawk/manual/html_node/Using-Constant-Regexps.html 和 http://www.gnu.org/software/gawk/manual/html_node/Computed-Regexps .html (2认同)