陈大剩博客

Shell 编程(四):文本三剑客之 Grep

  • 陈大剩
  • 2023-01-27 23:21:22
  • 1024

grep

grep语法格式

方法 命令
方法一 grep [option] [pattern] [ file1,file2...]
方法二 command | grep [option] [pattern]

选项

选项 含义
-v 不显示匹配行信息
-i 搜索时忽略大小写
-n 显示行号
-r 递归搜索
-E 支持扩展正则表达式
-e 不支持扩展正则表达式
-F 不按正则表达式匹配,按照字符串字面意思匹配
-c 只输出匹配行的数量,不显示具体内容
-w 匹配整词
-x 匹配整行
-l 只列出匹配的文件名,不显示具体匹配行内容

例子

准备文件 cat /etc/passwd > ./passwd.txt

  1. 找普通字符 root,不区分大小写
  2. 统计 password.txt 文本中,有多少行 root 有关的内容
  3. 找出所有允许登录的用户,解释器是 /bin/bash 的行
  4. 找出不允许登录的用户
  5. 找出 root 开头的行
  6. 过滤出除 bin 开头的行,显示行号
  7. 找出系统上 root、yu、nobody 用户的信息
  8. 查找当前目录下有 root 的所有文件
# 找普通字符root,不区分大小写
> grep -ni root passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

# 统计 password.txt 文本中,有多少行 root 有关的内容
> grep -c root passwd.txt 
2

# 找出所有允许登录的用户,解释器是/bin/bash的行
> grep -n "/bin/bash$" passwd.txt 
1:root:x:0:0:root:/root:/bin/bash

# 找出不允许登录的用户
> grep -n 'nologin$' passwd.txt 
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

# 找出root开头的行
> grep -n '^root' passwd.txt 
1:root:x:0:0:root:/root:/bin/bash

# 过滤出除bin开头的行,显示行号
> grep -nvE '^bin' passwd.txt 
1:root:x:0:0:root:/root:/bin/bash
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin

# 找出系统上root、yu、nobody用户的信息
> grep -E '^\<(root|yu|nobody)\>' passwd.txt 
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

# 查找当前目录下有 root 的所有文件
> grep -nr root
grep.sh:5:grep -c root passwd.txt
password.txt:1:root:x:0:0:root:/root:/bin/bash
password.txt:10:operator:x:11:0:operator:/root:/sbin/nologin
分享到:
0

说点儿什么吧

头像

表情

本站由陈大剩博客程序搭建 | 湘ICP备2023000975号| Copyright © 2017 - 陈大剩博客 | 本站采用创作共用版权:CC BY-NC 4.0

站长统计| 文章总数[115]| 评论总数[9]| 登录用户[22]| 时间点[119]

logo

登入

社交账号登录