五.Linux之grep命令
2019-01-26 本文已影响0人
Dakini_Wind
grep命令选项
-c 只输出匹配行的数量
-i 搜索时忽略大小写
-h 查询多文件时不显示文件名
-l 只列出符合匹配的文件名,不列出具体的行
-n 列出所有匹配的行,并显示行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,以退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-E 支持拓展的正则表达式
-F 不支持正则表达式,按照字符串的字面意思进行匹配
grep选项demo
- 无选项
$ grep 11 1.txt
11:a
- -c选项
$ grep -c 1 1.txt 2.txt
1.txt:1
2.txt:1
- -n选项
$ grep -n 11 *
1.txt:1:11:a
new1.txt:1:11:a
sort1.txt:1:11:a
- -v选项
$ grep -v 11 1.txt
2:b
2:e
5:e
5:e
6:o
5:e
3:p
04:p
- -i选项
$ grep -i A 1.txt
11:a
- -h选项
$ grep 11 *
1.txt:11:a
new1.txt:11:a
sort1.txt:11:a
- -l选项
$ grep -l 11 *
1.txt
new1.txt
sort1.txt
- -s选项
$ grep 123 123.txt
grep: 123.txt: 没有那个文件或目录
$ grep -s 1 123.txt
- -w选项
$ grep 11:* 1.txt
11:a
$ grep -w 11:* 1.txt
11:a
!!按照我的理解此处不应该搜索到才对
- -x选项
$ grep '2:d' 2.txt
2:d
2:dd
2:d d
$ grep -w '2:d' 2.txt
2:d
2:d d
$ grep -x '2:d' 2.txt
2:d
- -E选项
等价于egrep
拓展正则表达式,添加以下符号:“|”,“+”,“?”,“()”
“|“ :或
“+” : 重复前面的字符串至少一次
”?“ :表示重复0-1次前面的字符
$ grep -E '(1|2|):' 2.txt
1:c
2:d
2:dd
2:d d
:ddddddd
grep与其他命令组合使用
$ ps -ef | grep fitcx
# 查找指定进程
$ ls -l | grep .*.txt
# 查找当前目录txt文件
$ find . -name "*.txt" -exec grep -l -n "11" {} \;
# 查找包含“11”的txt文件
./1.txt
./sort1.txt
./new1.txt