不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • Langchain
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • Linux入门

  • Linux高级

    • 01.Linux正则
    • 02.find
    • 03.grep
      • 01.grep作用
        • 1.1 grep作用
        • 1.2 grep常用参数
        • 1.3 grep命令操作练习
      • 02.grep常用方法
        • 2.1 查找包含root字符串的文件
        • 2.2 查找不包含root关键字的行
        • 2.3 包含root关键字的行
        • 2.4 统计文件包含root字符串行的数量
      • 03.grep综合使用
    • 04.sed
    • 05.awk
  • Nginx

  • Keepalive

  • ansible

  • zabbix

  • Shell

  • Linux内核

  • Linux
  • Linux高级
xiaonaiqiang
2021-02-13
目录

03.grep

# 01.grep作用

**更多详细内容参考:**https://www.cnblogs.com/xiaonq/p/11969744.html

# 1.1 grep作用

  • grep命是 文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 。
  • grep家族总共有三个成员构成:grep、egrep、fgrep
  • grep 是linux中最为常用的三大文本(awk,sed,grep)处理工具之一

# 1.2 grep常用参数

选项 含义
-v 排除
-n 显示行号
-E 支持扩展正则表达式(与egrep作用相同)
-i ==ignore-case忽略大小写
-w ==word以单词格式查找
-c 统计匹配上的行数(统计包含xxx的有多少行)
-o 显示匹配过程

# 1.3 grep命令操作练习

#1. 在 dks.txt 文件中匹配上 test 的行数
grep -c "test" dks.txt
 
#2. 统计在 dks.txt 文件中,test 字符串出现的次数
grep -o "test" dks.txt |wc -l

#3. 打印 test 的行及行号
grep -n "test" dks.txt

#4. 不区分大小写查找 tEst 所有行
grep -i "tEst" dks.txt
 
#5. 匹配以字符包含test5或test3的行
grep "test[53]" dks.txt
 
#6. 输出不是以 test开头的行
grep "^[^test]" dks.txt
 
#7. 匹配 M 或 m 开头的行
grep "^[mM].*" dks.txt
 
#8. 匹配 K 和 D,并且 K 和 D 中间有两个任意字符
grep "K..D" dks.txt
 
#9. 匹配大写字母,紧跟 9D 的字符行
grep "[A-Z]9D" dks.txt
 
#10. 打印 T 字符连续出现 2 次以上的行
grep "T\{2,\}" dks.txt
 
#11.打印 T 字符连续出现 2 次至 6 次之间的行
grep "T\{2,6\}" dks.txt
 
#12. 打印空行所在的行号
grep -n "^$" dks.tx
 
#13. 不匹配文件中的#号和空行
grep -vE "^$|#" dks.txt
 
#14. 在/data 目录下,匹配文件中包含 db 或者 config 或者 sql 的文件
grep -ra -E "db|config|sql" /data
 
#15. 匹配 ip 地址
ifconfig eth0 |grep "inet "|grep -E "\<([0-9]{1,3}\.?){4}" -o|head -1    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

# 02.grep常用方法

# 2.1 查找包含root字符串的文件

  • 1. grep -n 'root' /etc/passwd :查找/etc/passwd下包含 root字符串的文件
[root@linux-node1 /]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
1
2
3

# 2.2 查找不包含root关键字的行

  • 2. grep -Ev "root|nologin" /etc/passwd :查找不包含root和nologin关键字的行
[root@linux-node1 /]# grep -Ev "root|nologin" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
1
2
3
4

# 2.3 包含root关键字的行

  • 3.grep "root" /etc/{passwd,shadow} :查找/etc/passwd和/etc/shadow文件中包含root关键字的行
[root@linux-node1 /]# grep "root" /etc/{passwd,shadow}
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
1
2
3

# 2.4 统计文件包含root字符串行的数量

  • 4.grep -c root /etc/passwd :统计/etc/passwd文件中包含root字符串行的数量
[root@linux-node1 /]# grep -c root /etc/passwd       # 统计包含root单词的行数
2

[root@redis ~]# grep -o root /etc/passwd | wc -l     # 统计root单词出现的次数
4
1
2
3
4
5

# 03.grep综合使用

 grep -E -v "^$|^#" /etc/nginx/nginx.conf          # 去除空号和以#号开头的行
 seq 1 20 |grep -m 5 -E '[0-9]{2}'               # 输出匹配的前五个结果
 seq 1 20 |grep -c -E '[0-9]{2}'                 # 输出匹配多少行
 echo "a bc de" |xargs -n1 |grep '^b'             # 匹配以字符串"b"开头的行
 echo "a ab abc abcd abcde" |xargs -n1 |grep -n 'de$'        # 匹配以"de"字符串结尾的行
 grep -r 'sshd' /etc --include *.conf             # 递归搜索/etc 目录下包含 "sshd"字符串 的 conf 后缀文件
 seq 41 45 |grep -E '4[12]'                    # 匹配41/42数字
1
2
3
4
5
6
7
上次更新: 2024/3/13 15:35:10
02.find
04.sed

← 02.find 04.sed→

最近更新
01
05.快递Agent智能体
06-04
02
200.AI Agent核心概念
06-04
03
105.Agent智能体梳理
06-04
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式