假设我们有一个包含禁止行的文本文件forbidden.txt
。过滤文本文件中存在的命令输出的所有行的快捷方法是什么?
cat input.txt | exclude-forbidden-lines forbidden.txt | sort
答案1
grep
像这样使用:
$ grep -v -x -F -f forbidden.txt input.txt
那一长串选项grep
意味着
-v
反转匹配的意义,即寻找线条不是匹配。-x
匹配模式时,要求模式匹配整条线,即不仅仅是线路上的任何地方。-F
匹配模式时,将其视为固定串,即不作为正则表达式。-f
从给定文件中读取模式 (forbidden.txt
)。
然后通过管道将其传送到sort
或执行任何您想用它执行的操作。