根据一个文件中不存在的行从另一个文件中删除行

根据一个文件中不存在的行从另一个文件中删除行

如果 fileB (仅一列)不包含 fileA 中第 1 列的字符串,我需要从有两列的 fileA 中删除行。

例子。这是文件A:

a b
a c
a d
e f
g h

文件B:

a
b
g

在这里,输出应该是:

a b
a c
a d
g h

答案1

join fileA fileB

假设文件在第一列上排序(它们在您的示例中)。

答案2

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

答案3

awk '{if(NR==FNR) a[$1]=$1}{if($1==a[$1] && NR>FNR) print $0}' fileB.txt fileA.txt

相关内容