针对 file2 删除 file1 中的数据
Remove data in file1 against file2
这可能是 Whosebug 上给出的最糟糕的示例,但我的目的是针对 File2 删除 File1 中的所有内容。同时忽略大小写敏感性并匹配整行。例如 Cats@123:bob 将从 File2 中删除,因为单词 Cat 出现在 File1 中。因此,无论是否区分大小写,如果找到匹配的词,它应该删除整行。
输入(文件 1):
Cat
Dog
Horse
Wheel
主文件(文件 2)
Cats@123:bob
dog@1:truth
Horse-1:fairytale
Wheel:tremendous
Divination:maximus
期望的输出
Divination:maximus
如输出所示,只有 "Divination:maximus" 应该输出,因为在 File1 中没有找到匹配的词。我通常更喜欢使用 Sed 或 Awk,就像我使用 Cygwin 一样。但欢迎任何建议,我可以回答你的所有问题,谢谢。
这是我迄今为止尝试过的方法,但不幸的是它没有起作用,因为我的输出不正确。除此之外,还输出了错误的行。我相当缺乏经验,所以我不知道如何根据下面的语法进行开发,也许它与手头的工作完全无关。
grep -avf file1.txt file2.txt > output.txt
grep
命令可以为您做到这一点:
grep -v -i -f file1 file2
-f file1
告诉 grep
使用 file1
中的模式
-i
标志表示不区分大小写
-v
标志意味着搜索不包含这些模式的行
这可能是 Whosebug 上给出的最糟糕的示例,但我的目的是针对 File2 删除 File1 中的所有内容。同时忽略大小写敏感性并匹配整行。例如 Cats@123:bob 将从 File2 中删除,因为单词 Cat 出现在 File1 中。因此,无论是否区分大小写,如果找到匹配的词,它应该删除整行。
输入(文件 1):
Cat
Dog
Horse
Wheel
主文件(文件 2)
Cats@123:bob
dog@1:truth
Horse-1:fairytale
Wheel:tremendous
Divination:maximus
期望的输出
Divination:maximus
如输出所示,只有 "Divination:maximus" 应该输出,因为在 File1 中没有找到匹配的词。我通常更喜欢使用 Sed 或 Awk,就像我使用 Cygwin 一样。但欢迎任何建议,我可以回答你的所有问题,谢谢。
这是我迄今为止尝试过的方法,但不幸的是它没有起作用,因为我的输出不正确。除此之外,还输出了错误的行。我相当缺乏经验,所以我不知道如何根据下面的语法进行开发,也许它与手头的工作完全无关。
grep -avf file1.txt file2.txt > output.txt
grep
命令可以为您做到这一点:
grep -v -i -f file1 file2
-f file1
告诉grep
使用file1
中的模式
-i
标志表示不区分大小写-v
标志意味着搜索不包含这些模式的行