使用awk和变量查找单词的出现次数

时间:2015-12-03 06:47:26

标签: unix awk

我正在尝试查找包含用户输入的字词的字段数。我不知道在我的awk语句中使用该变量的语法。如果我只使用$ i =="华盛顿"的文字字符串。它工作,但我需要它来使用输入。当我尝试这个时它什么都不返回:

    <code>
read Choice
    awk '{ 
         for (i=1;i<=NF;i++)
             if ( $i == "$Choice")
             c++
         }
    END{
    print c}' DC_Area.csv
    </code>

1 个答案:

答案 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