你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

『Linux笔记』grep文本搜索[ps aux和ps -ef区别][ssh_config和sshd_config区别]

2021/12/17 1:07:14
grep文本搜索[ps aux和ps -ef区别][ssh_config和sshd_config区别]

文章目录

    • 一. 基本使用
    • 二. 正则表达式的基本使用

一. 基本使用

  • Linux grep 命令用于查找文件里符合条件的字符串。 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
  • grep "搜索的字符" 文件名
-i 忽略大小写,不区分大小写。
-c 统计搜索到字符出现的次数。
-n 输出行号。
-v 反向匹配,就是不出现要搜索字符的所有行。
  • Linux grep命令:https://www.runoob.com/linux/linux-comm-grep.html
(base) -bash-4.2# grep 222 lab.log 
[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223

(base) -bash-4.2# grep "222" lab.log 
[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223

(base) -bash-4.2# grep -c "222" lab.log 
2

(base) -bash-4.2# grep -n  "222" lab.log 
474:[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
3015:[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223

二. 正则表达式的基本使用

  • 基础正则表达式
* 符号 匹配0次或者多次
. 符号 匹配除了换行符之外的所有符号
\{n, m|} 指定匹配次数
  • 具体的正则规则可以参考(基本一致):Python正则表达式详细介绍!
[deploy@node1 kaifang]$ docker ps | grep '[0-9]\{6,9\}'
c6a9ae371592        1ab13f928dc8                                                     "/tini -- /usr/local…"   9 months ago        Up 3 weeks                     9200/tcp, 9300/tcp                                              docker_elasticsearch_1
f0485345bed7        openjdk:8-debain-zh                                              "java -Xms512m -Xmx5…"   9 months ago        Up 3 weeks                     8885/tcp                                                        mingjing_uac_1
3db2069448d9        nginx                                                            "/docker-entrypoint.…"   9 months ago        Up 3 weeks                     80/tcp, 0.0.0.0:10888->10888/tcp, 0.0.0.0:9902->9901/tcp        mingjing_frontend_1
bc7505673ba5        mysql:5.7                                                        "docker-entrypoint.s…"   9 months ago        Up 3 weeks                     33060/tcp, 0.0.0.0:13306->3306/tcp                              mingjing_mysql_1
2ab40f606439        elasticsearch:6.8.6                                              "/usr/local/bin/dock…"   13 months ago       Up 3 weeks                     0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                  es
[deploy@node1 kaifang]$ docker ps | grep "[0-9]\{6,9\}"
c6a9ae371592        1ab13f928dc8                                                     "/tini -- /usr/local…"   9 months ago        Up 3 weeks                      9200/tcp, 9300/tcp                                              docker_elasticsearch_1
f0485345bed7        openjdk:8-debain-zh                                              "java -Xms512m -Xmx5…"   9 months ago        Up 3 weeks                      8885/tcp                                                        mingjing_uac_1
3db2069448d9        nginx                                                            "/docker-entrypoint.…"   9 months ago        Up 3 weeks                      80/tcp, 0.0.0.0:10888->10888/tcp, 0.0.0.0:9902->9901/tcp        mingjing_frontend_1
bc7505673ba5        mysql:5.7                                                        "docker-entrypoint.s…"   9 months ago        Up 3 weeks                      33060/tcp, 0.0.0.0:13306->3306/tcp                              mingjing_mysql_1
2ab40f606439        elasticsearch:6.8.6                                              "/usr/local/bin/dock…"   13 months ago       Up 3 weeks                      0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                  es

[deploy@node1 kaifang]$ docker ps | grep '[0-9]*'
  • 基础正则表达式2
^ 符号 表示以什么开头,匹配字符串开头 用在前面
$ 符号 表示以什么结尾,匹配字符串结尾 用在后面
^$ 符号 匹配空行
[deploy@node1 kaifang]$ docker images | grep '^redi'
redis                                                     latest              bd571e6529f3        14 months ago       104MB

[deploy@node1 kaifang]$ grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash

(base) -bash-4.2# grep '3892$' lab.log 
[07/Nov/2021 10:55:11] "GET /static/css/uikit.e49a7a43adbd.css HTTP/1.1" 200 3892
[08/Nov/2021 06:45:06] "GET /static/css/uikit.e49a7a43adbd.css HTTP/1.1" 200 3892

(base) -bash-4.2# grep -c '^$' lab.log 
8
(base) -bash-4.2# grep -n '^$' lab.log 
81:
84:
90:
92:
567:
1605:
1607:
3027: