如何过滤出文本文件中出现的命令输出行?

dan*_*jar 23 shell pipe filter

假设我们有一个禁止行的文本文件forbidden.txt。过滤文本文件中存在的命令输出的所有行的简短方法是什么?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 43

grep像这样使用:

$ grep -v -x -F -f forbidden.txt input.txt
Run Code Online (Sandbox Code Playgroud)

一长串选项grep意味着

  • -v反转匹配的意义,即寻找匹配的行。
  • -x匹配模式时,要求模式匹配整行,即不仅仅是行上的任何地方。
  • -F匹配模式时,将其视为固定字符串,即不视为正则表达式。
  • -f从给定文件 ( forbidden.txt) 中读取模式。

然后通过管道将其发送到sort或任何您想用它做的事情。