我在文件A中有一个字符串列表,我试图与文件B&的第一列匹配。输出文件b中具有完全匹配的所有字段。这是我正在使用的awk脚本,但它一直给我错误。我无法找到解决问题的方法。任何帮助表示赞赏。
while read line
{
awk '{($1~/'"$line"'/) print $1}' fileB
}
done < fileA
答案 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的代码:
sed 's#.*#/^&/p#' fileA|sed -nf - fileB