grep - 文本搜索工具
Synopsis: g/re/p (Globally search a Regular Expression and Print)是类Unix系统中一个强大的文本搜索工具,在给出文件列表或标准输入后,grep会逐行搜索,判断是否与指定的一个或多个正则表达式匹配,并只输出匹配(或者不匹配)的行或文本。grep使用基本正则表达式,egrep支持使用扩展正则表达式,灵活使用正则,配合grep可以实现文件内非常强大的文本搜索功能
1. 常用选项
grep的基本语法为grep [OPTIONS] PATTERN [FILE...]
,其中PATTERN是匹配的模式,需要说明的是grep
支持使用基本正则表达式(BRE
),egrep
支持使用扩展正则表达式(ERE
),而fgrep
不支持正则,它搜索字符串而不是搜索匹配表达式的模式
1.1 -i, --ignore-case
忽略字符大小写
1.2 -v, --invert-match
反向匹配,即显示没有 '查找字符串' 的所有行
# grep -v '/sbin/nologin' /etc/passwd
root:x:0:0:root:/root:/bin/bash
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.3 -c, --count
打印每个输入文件中包含匹配模式的行数
1.4 -n, --line-number
打印匹配到的文本所在行号
# grep -E -n 'sshd|ntp' /etc/passwd 25:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 26:ntp:x:38:38::/etc/ntp:/sbin/nologin
1.5 -l, --files-with-matches
当匹配到的结果非常多时,可以使用-l
只显示文件名
# find / -type f 2> /dev/null | xargs -n 10 grep -l '\*'
/boot/grub/splash.xpm.gz
/boot/grub2/i386-pc/acpi.mod
/boot/grub2/i386-pc/date.mod
... ...
1.6 -q, --quiet, --silent
静默模式,不输出任何信息,常用于脚本中条件测试,不需要输出的信息,如果匹配到则命令执行后的返回状态值为 0 ,否则为 1
1.7 -r, --recursive
递归搜索
# grep -r -n 'sshd' /etc
... ...
/etc/group-:44:sshd:x:74:
/etc/gshadow-:44:sshd:!::
/etc/group:44:sshd:x:74:
/etc/gshadow:44:sshd:!::
/etc/passwd-:25:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
/etc/shadow-:25:sshd:!!:16955::::::
/etc/passwd:25:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
/etc/shadow:25:sshd:!!:16955::::::
... ...
1.8 -A NUM, --after-context=NUM
输出匹配行的后 NUM 行
分享
相关推荐
作者
发表评论
专题系列
随机文章
热门标签
文章目录
- 1. 常用选项
- 1.1 -i, --ignore-case
- 1.2 -v, --invert-match
- 1.3 -c, --count
- 1.4 -n, --line-number
- 1.5 -l, --files-with-matches
- 1.6 -q, --quiet, --silent
- 1.7 -r, --recursive
- 1.8 -A NUM, --after-context=NUM
- 1.9 -B NUM, --before-context=NUM
- 1.10 -C NUM, -NUM, --context=NUM
- 1.11 --color=auto
- 1.12 -E, --extended-regexp
- 1.13 -e PATTERN, --regexp=PATTERN
- 1.14-F, --fixed-strings, --fixed-regexp
- 1.15 -f FILE, --file=FILE
- 2. 基本正则表达式
- 3. 扩展正则表达式
0 条评论
评论者的用户名
评论时间暂时还没有评论.