如何匹配 awk 中的 shell 变量?
How to match to a shell variable in awk?
我正在尝试将 shell 变量与用逗号分隔的第二列相匹配。
所以我将 $INOW 设置为 ls 并且命令看起来像这样
awk -F"," ' == $INOW {print "yeah it's there"}' commands.csv
我试过在 $INOW 周围加上引号。没有不同。我如何匹配 shell 变量?
您不能在 awk
中直接使用 shell 变量。相反,您可以使用 -v
创建一个 awk 变量
例子
$ a_variable=hello
$ awk -v var="$a_variable" "{print var}"
hello
所以在你的情况下你可以这样写,
$ awk -F"," -v inow="$INOW" ' == inow {print "yeah its there"}' commands.csv
awk -F"," '{if( == '$INOW') {print "yeah its there"}else{print "nope"}}' commands.csv
我正在尝试将 shell 变量与用逗号分隔的第二列相匹配。 所以我将 $INOW 设置为 ls 并且命令看起来像这样
awk -F"," ' == $INOW {print "yeah it's there"}' commands.csv
我试过在 $INOW 周围加上引号。没有不同。我如何匹配 shell 变量?
您不能在 awk
中直接使用 shell 变量。相反,您可以使用 -v
例子
$ a_variable=hello
$ awk -v var="$a_variable" "{print var}"
hello
所以在你的情况下你可以这样写,
$ awk -F"," -v inow="$INOW" ' == inow {print "yeah its there"}' commands.csv
awk -F"," '{if( == '$INOW') {print "yeah its there"}else{print "nope"}}' commands.csv