我想删除一个文件中包含另一个文件中的字符串的所有行。因此,我不想删除相同的行(没有相同的行),而是删除所有共享另一个文件中的字符串的行。并将不包含另一个文件中的字符串的行写入新文件。示例:
文件 A:
bird, snake
dog, cat
rabbit,fox
eagle,dove
文件 B:
dog
dove
结果文件:
bird,snake
rabbit,fox
请帮忙。
多谢。
答案1
使用以下grep
表达式:
grep -vFf file_B file_A
这是一个测试:
$ cat file_A
bird, snake
dog, cat
rabbit,fox
eagle,dove
$ cat file_B
dog
dove
$ grep -vFf file_B file_A
bird, snake
rabbit,fox
-f
将从文件中读取模式(每行一个),file_B
在本例中-F
将把读取的模式file_B
视为固定字符串,这意味着不会对模式进行进一步的模式操作-v
将打印不匹配的行,即file_A
不包含来自的模式的行file_B
。