我正在尝试查找包含用户输入的字词的字段数。我不知道在我的awk语句中使用该变量的语法。如果我只使用$ i =="华盛顿"的文字字符串。它工作,但我需要它来使用输入。当我尝试这个时它什么都不返回:
<code>
read Choice
awk '{
for (i=1;i<=NF;i++)
if ( $i == "$Choice")
c++
}
END{
print c}' DC_Area.csv
</code>
答案 0 :(得分:3)
在awk中看不到Shell变量。这就是为什么OP中的代码不起作用的原因。使用-v
选项将shell变量传递给awk。
尝试
read Choice
awk -v Choice="$Choice" '{
for (i=1;i<=NF;i++)
if ( $i == Choice)
c++
}
END{
print c}' DC_Area.csv