介绍
grep 代表“全局正则表达式打印”,它在 Linux 中是一个有用的命令。
grep 命令用于过滤掉与正则表达式匹配的输入文件,然后打印到标准输出。 并且排除单词和模式或字典和文件也非常重要。
以下是我们在下面进行的如何在 grep 中排除的指南。
排除单词和模式
要显示与搜索模式不匹配的行,让我们使用 -v 选项。
现在我有一个名为 fn.txt. 的文件,其中包含以下内容:
为了 example,我想排除包含单词function的行:
$ grep -v function fn.txt
输出:
如您所见,包含单词 function 的行被过滤掉了。
如果要搜索的字符串包含空格,则必须使用括号或引号。
为了 example,我想排除包含字符串 ab cd 的行:
$ grep -v 'ab cd' fn.txt
输出:
如果你想一次指定多个字符串,让我们使用 -e 选项。
为了 example,我想排除limit和abcd字符串:
$ grep -v -e limit -e abcd fn.txt
输出:
如果您只想排除在行首显示的单词。 为了 example,我想排除出现在行首的单词function
$ grep -v '^function' fn.txt
输出:
因为单词 function 出现在行尾,所以它不会被排除在外。
排除目录和文件
要排除您指定的目录,请使用 –排除目录 和 -R 或者 -r 选项。 -R 将遵循所有符号链接。 这也是两者最大的区别 -r 和 -R 选项。
为了 example,我想排除包含字符串 cat 的文件 /home/ubuntu 目录:
$ grep -R --exclude-dir=ubuntu cat /home
输出:
红色部分被过滤掉。
要一次排除多个目录,请将目录放在大括号中,并用逗号分隔,不带空格。
为了 example,我想排除包含字符串 Linux 的文件 ubuntu 和 食物 目录:
$ grep -r --exclude-dir={ubtuntu,food} linux /
输出:
红色部分被过滤掉。
结论
您已经了解了如何在 grep 中排除的详细信息。
谢谢阅读。