我在文件 A 中有一个字符串列表,我试图与文件 B 的第一列匹配并输出文件 b 中具有完全匹配的所有字段。这是我正在使用的 awk 脚本,但它不断给我错误。我看不出问题来。任何帮助表示赞赏。
while read line
{
awk '{($1~/'"$line"'/) print $1}' fileB
}
done < fileA
我在文件 A 中有一个字符串列表,我试图与文件 B 的第一列匹配并输出文件 b 中具有完全匹配的所有字段。这是我正在使用的 awk 脚本,但它不断给我错误。我看不出问题来。任何帮助表示赞赏。
while read line
{
awk '{($1~/'"$line"'/) print $1}' fileB
}
done < fileA
这作为 awk 脚本没有意义:
{($1~/'"$line"'/) print $1}
我认为您正在尝试查看第一列 ( $1
) 是否包含$line
. 如果是这种情况,您的匹配表达式需要超出大括号,并且您不需要/
正则表达式周围的斜线 ( ),如下所示:
$1 ~ '"$line"' {print $1}
您可以通过将变量传递给 awk 来节省一些引用,如下所示:
awk -v line="$line" '$1 ~ line {print $1}'
没有输入/输出的例子,只是猜你想要什么,你提到(完全匹配)试试这个:
awk 'NR==FNR{a[$0];next}$1 in a' fileA fileB
sed的代码:
sed 's#.*#/^&/p#' fileA|sed -nf - fileB