grep命令
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
选项
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
| -a 不要忽略二进制数据 -A<显示列数> 同时显示后面的行 -b 同时显示前面的行 -c 统计符合范本样式的行数 -C<列数>或-<列数> 同时显示该前后几列/行的内容 -d<动作> 指定查找目录,必须使用这项参数 -e<样式> 指定字符串作为查找文件内容的样式 -E 使用扩展正则表达式,相当于egrep -f<文件> 指定文件,可一个或多个 -F 将样式视为固定字符串的列表 -G 将样式视为普通的表示法来使用 -h 不标示该列所属的文件名称 -H 标示该列的文件名称 -i 忽略大小写 -l 列出文件内容符合样式的文件名 -L 列出文件内容不符合样式的文件名 -n 显示行号 -q 不显示任何信息 -r 递归 -s 不显示错误信息 -v 反向查找 -w 只显示全字符合的行 -x 只显示全行符合的行 -y 同“-i” -o 只输出文件中匹配到的部分 --color 高亮显示搜索,多数系统默认支持
|
常见用法
输出除搜索的内容外的内容
1
| grep -v "搜索的内容" file_name
|
只输出匹配的内容
1 2 3
| echo "this is a test line." | grep -o -E "[a-z]+\."
echo this is a test line. | egrep -o "[a-z]+\."
|
line.
显示行号
1
| grep "text" -n file_name
|
在多级目录中对文本进行递归搜索
规则表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ^ $ . * .* [] [^] \(..\) \< \> x\{m\} x\{m,\} x\{m,n\} \w \W \b
|
高级用法
使用扩展正则表达式
1 2 3
| grep -E "[1-9]"
egrep "[1-9]"
|
行前(^) 行尾($)
1 2 3 4 5
| grep ^test file_name
grep test$ file_name
|
任意一个字符(.) 任意多字符(*)
1 2 3 4
| grep go.d file_name
grep g*d file_name
|