我有 2 个文本文件,想要在文件 A 中删除包含文件 B 中字符串的行
文件A:
joe ball 1335
john dyer 1365
dylan fisher 1795
ian gill 1913
eric kelly 1101
文件B:
1795
1913
我希望 Bash 代码得到这样的结果:
joe ball 1335
john dyer 1365
eric kelly 1101
我尝试了这些代码,但没有找到答案
$ grep -vwF -f A B
$ awk -F'[ ,]' 'FNR==NR{a[$1];next} !($4 in a)'
最佳答案
awk 'NR==FNR{a[$1];next} !($3 in a)' fileB fileA
它使用空格作为字段分隔符,$1
是一行的第一列元素,$3
是该行的第三列元素。
使用数组 a
存储 fileB 元素 a[$1]
。检查 fileA 的第 3 列元素
是否在数组a
中,如果不在则打印整行
输出:
joe ball 1335
john dyer 1365
eric kelly 1101
关于bash - 删除文件 A 中包含文件 B 中字符串的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41217167/