返回顶部
首页 > 资讯 > 操作系统 >2.Linux中grep多个关键字“与”和“或”使用详解
  • 856
分享到

2.Linux中grep多个关键字“与”和“或”使用详解

linux运维服务器 2023-09-01 07:09:49 856人浏览 八月长安
摘要

1、linux grep命令用于查找文件里符合条件的字符串    grep 命令非常常用,经常用于匹配文本字符 grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式

1、linux grep命令用于查找文件里符合条件的字符串    grep 命令非常常用,经常用于匹配文本字符

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来

一、或(or)操作

使用选项 -E
grep -E 'a1|a2'filename    // 找出文件(filename)中包含a1或者包含a2的行

使用egrep
egrep 'a1|a2' filename     // 用egrep同样可以实现

使用选项 -e
使用grep -e 选项,只能传递一个参数。在单条命令中使用多个 -e 选项
grep -e a1 -e a2 filename  //使用-e选项实现

使用awk
awk '/a1|a2/' filename     // awk 的实现方式

二、与(and)操作

grep命令本身不提供AND功能。但是,使用 -E 选项可以实现AND操作

显示既匹配 pattern1 又匹配 pattern2 的行

grep pattern1 files | grep pattern2 

使用多个grep命令
grep "a1" filename | grep "a2"  //找出既匹配 a1 又匹配 a2 的行

其他情况

1、grep ‘字符串’     
cat manpath.config | grep 'MANPATH'       //匹配文件中包含 MANPATH 的那一行

2、grep -v ‘字符串’
cat manpath.config| grep -v 'MANPATH'   //匹配文件中不包含 MANPATH 的那一行

3、grep -E 同时匹配多个关键字–或关系

grep -E "Word1|word2|word3" file.txt

匹配 file.txt 中包含 word1 或 word2 或 word3 的行。 满足其中任意条件(word1、word2和word3之一)就会匹配。

4、同时匹配多个关键字–与关系

使用管道符连接多个 grep ,间接实现多个关键字的与关系匹配

grep word1 file.txt | grep word2 |grep word3    //必须同时满足三个条件(word1、word2和word3)才匹配。
 

5、使用grep关键字出现次数进行计数统计

模糊匹配

grep -o "keyword" filename |wc -l

精确匹配(以整个word 匹配)

grep -wo "keyword" filename |wc -l
 

6、包含关键字的行数(一行存在多个关键字,计数为1)

grep -c "keyword" filename
 

7、ls、grep、wc统计目录下文件及文件夹的个数

1 统计当前目录下文件的个数(不包括目录)

ls -l | grep "^-" | wc -l

2 统计当前目录下文件的个数(包括子目录)

ls -lR| grep "^-" | wc -l

3 查看某目录下文件夹(目录)的个数(包括子目录)

ls -lR | grep "^d" | wc -l

ls -l

长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录

ls -lR 

是列出所有文件,包括子目录

grep "^-"
过滤ls的输出信息,只保留一般文件,只保留目录是grep "^d"

wc -l
统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数

来源地址:https://blog.csdn.net/qq_44438941/article/details/129730098

--结束END--

本文标题: 2.Linux中grep多个关键字“与”和“或”使用详解

本文链接: https://lsjlt.com/news/387733.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作