假设我向awk脚本传递了一些变量:
$AWK -f script.awk -v var01="foo" var02="bar"
在脚本中,我获取了一些模式:
# pattern01 var01
/pattern01/ {
if (??? == "foo") print
}
我想将变量"$2"("var01")扩展为其给定值。 我一直在尝试使用gawk,似乎可以以下列方式扩展变量:
print $$x
但是,由于某些原因,在第一个示例中无法正常工作,我需要保持POSIX兼容性。是否有可能在给定的示例中扩展变量?
(注意:如果可能,我希望保留此行为,因此我不想使用其他工具或shell扩展的解决方法)在shell中的等效写法:
file01:
foobar
some random text
pattern01 var01
more random text...
code.sh:
#!/bin/sh
var01="Hello"
x="$(grep '^pattern01' file01 | awk '{print $2}')"
eval echo "$"$x # prints Hello
var02
是一个shell变量吗?您能否提供更多关于它的信息呢? - RavinderSingh13print var01
。 - Ed Mortonawk
中使用变量,请参考此帖子:https://dev59.com/cGIk5IYBdhLWcg3wqPsi#19075707 - Jotne