如何使用另一个文本文件从一个文本文件中删除匹配的行?

Ter*_*ice 4 text-processing

我正在尝试使用另一个文本文件从一个文本文件中删除匹配的行。例如,fired.txt包含:

Jason
Candice
Brent
Tom
Run Code Online (Sandbox Code Playgroud)

我想从 中删除匹配的行workers.txt,目前看起来像这样:

Andrew
Tommy
Peter
Jason
Brent
Sasha
Tom
Candice
Run Code Online (Sandbox Code Playgroud)

所以,最后,如果它完全匹配,它会删除整行,所以它看起来像这样:

Andrew
Tommy
Peter
Sasha
Run Code Online (Sandbox Code Playgroud)

我正在使用 macOS Sierra,顺便说一句。

Rom*_*est 8

简短的grep方法:

grep -xvf fired.txt workers.txt
Run Code Online (Sandbox Code Playgroud)

输出:

Andrew
Tommy
Peter
Sasha
Run Code Online (Sandbox Code Playgroud)

grep选项:

  • x - 仅选择与整行完全匹配的那些匹配项

  • v - 反转匹配感,选择不匹配的行

  • f( --file=file) - 从 中获取模式file,每行一个

  • 如果添加了“F”(“--fixed-strings”)选项,则匹配将是文字而不是解释为正则表达式。如果要匹配的字符串包含方括号、大括号、括号或其他特殊的正则表达式字符,这非常有用。 (2认同)