使用awk在文件中查找匹配的字符串

时间:2013-07-24 14:50:17

标签: awk

我在文件A中有一个字符串列表,我试图与文件B&的第一列匹配。输出文件b中具有完全匹配的所有字段。这是我正在使用的awk脚本,但它一直给我错误。我无法找到解决问题的方法。任何帮助表示赞赏。

while read line
{
    awk '{($1~/'"$line"'/) print $1}' fileB
} 
done < fileA

3 个答案:

答案 0 :(得分:2)

这作为一个awk脚本没有意义:

{($1~/'"$line"'/) print $1}

我认为您正在尝试查看第一列($1)是否包含$line。如果是这种情况,您的匹配表达式需要之外的大括号,并且您不需要正则表达式周围的斜杠(/),如下所示:

$1 ~ '"$line"' {print $1}

你可以通过将变量传递给awk来节省一些引用:

awk -v line="$line" '$1 ~ line {print $1}'

答案 1 :(得分:1)

没有输入/输出的例子,只是猜猜你想要什么,你提到(完全匹配)试试这个:

awk 'NR==FNR{a[$0];next}$1 in a' fileA fileB

答案 2 :(得分:0)

的代码:

sed 's#.*#/^&/p#' fileA|sed -nf - fileB