欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

grep 同时排除多个关键字 不包含 有大用 有大大用

不说废话, 例如需要排除 abc.txt 中的  mmm   nnn

   grep -v 'mmm\|nnn' abc.txt 

 

再举个例子,需要确定mac 的本机ip地址,  显然直接可以输入 ifconfig, 但是会出来一大堆信息,那么再通过 grep inet 可以拿到类似如下的信息:

复制代码
bash-3.2# ifconfig | grep inet
   inet 127.0.0.1 netmask 0xff000000    inet6 ::1 prefixlen 128    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1    inet6 fe80::c37:dee4:5ad4:944b%en0 prefixlen 64 secured scopeid 0x4    inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255    inet6 fe80::8dc:a3ff:feaf:fbe1%awdl0 prefixlen 64 scopeid 0x9    inet6 fe80::bd0c:5502:92ad:25e1%utun0 prefixlen 64 scopeid 0xa
复制代码

 

 但是这样还是很多,需要从这几条信息里面去找到所需要的 ip 地址,我们可能想到了使用 grep -v 屏蔽掉 inet6,结果如下:

 

bash-3.2# ifconfig | grep inet | grep -v inet6
    inet 127.0.0.1 netmask 0xff000000
    inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

这样其实也可以看了,但是强迫症患者伤不起啊,我就只要一条,怎么弄呢,显然还可以继续通过 grep -v 127.0.0.1 来屏蔽掉第一条记录,如下:

 

bash-3.2# ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1
    inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

这样好像不是很优雅,那就刚刚说的方法,如下:

bash-3.2# ifconfig | grep inet | grep -v 'inet6\|127.0.0.1'
    inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

 

当然,还可以同时屏蔽掉更多的关键字,这里就不展开了,不知道的可以给我留言。

--------------------- 本文来自 天亮前灬晚安 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq70945934/article/details/77573870?utm_source=copy 


来自  https://blog.csdn.net/qq70945934/article/details/77573870



一批文件,想grep出 不包含某字符串的文件列表,只是不包含的列表哈,不是文件内容,怎么实现?

文件里面不包含 match ,把文件列出来


ls | xargs grep -L "match"


grep -L "字符串" *        #这个星号表示当前目录下的所有文件吧

普通分类: