一、几种grep指令的区别
1.grep
Global Regular Expressions Print
全局正则表达式打印
标准grep命令如下所示:
grep <flags> ' <regular expression>' <filename>
grep 支持的是基本正则表达式, + , ?, |, (,)看成基本字符,不是正则表达式的元字符
如果想用成元字符,需要转义
2.egrep
Extended Global Regular Expressions Print
扩展正则表达式打印
egrep支持扩展正则表达式(ERE), 与 grep -E 功能相同
+ , ?, |, (,)在egrep中是正则表达式的元字符
3.fgrep
Fixed-string Global Regular Expressions Print
fgrep 与 grep -F 功能相同, 不会将任何表达式识别为特殊字符,搜索可以更快,它只处理简单字符串
4.pgrep
Process-ID Global Regular Expressions Print
用来查看当前正在运行的进程,将与条件匹配的进程ID列在屏幕上,可以用来方便地查找PID。
[root@vm1 ~]# pgrep nginx
71982
71984
-l参数会返回进程ID同时显示进程名,如 pgrep -l nginx
二、grep 命令格式及基本用法
grep [-acinv] [–color=auto] ‘搜寻字符串’ filename 选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
–color :将匹配到的内容以颜色高亮显示。-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
grep 可以用管道连接符,将前级的输出作为grep的输入
1.不加参数的用法
2. cat grep.txt | grep -n "hello "
显示行号
3. cat grep.txt | grep -n -i --color "hello"
加上颜色显示
Linux 的命令行参数分为长选项参数 和短选项参数,长选项参数前是2个-
4. cat grep.txt | grep -A 2 --color "HELLO "
三、grep 指令的多样化实例应用
待补充积累
1.正则表达式
2.与sed 搭配来完成替换