Linux grep命令详解
grep还可以使用正则表达式去查询文件,在管道格式下也是可以用正则表达式的;下面的代码块里面是作者在虚拟机的输出结果,可以对照参数表看一下是什么样子的,例子不是很全,可以自己去试验一下。主要用于查找文件中符合条件的字符串、统计文件中符合条件的字符串行数、grep 不显示自身进程。与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位。只列出不符合匹配的文件名,不列出具体的匹配行。只列出符合匹
grep,擅长单纯的查找或匹配文本内容;
grep就是那种可以随时在终端直接去搜索,想要在这个输出里面的一些关键内容!!!
grep来自于英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。
grep 查找文件里符合条件的字符串,常与管道符|
、cat
、ps
一起使用;主要用于查找文件中符合条件的字符串、统计文件中符合条件的字符串行数、grep 不显示自身进程
基本命令格式:grep [option] pattern files
管道命令格式 rpm |grep "root"
grep是独立命令
| 是管道命令
在管道命令格式下如何去用正则表达式去查找指定文本?
rpm |grep "^[a-z]",这就是一个最简单的查找以字母开头的正则表达式。
grep参数表
-i | 忽略大小写 |
-a或--text | 不要忽略二进制的数据。 |
-A<显示列数> | 除了显示符合范本样式的那一列之外,并显示该列之后的内容,eg:-A5 |
-B<显示列数> | 除了显示符合范本样式的那一列之外,并显示该列之前的内容,eg:-B5 |
-C<显示行数> | 除了显示符合范本样式的那一列之外,并显示该列之前后的内容,eg:-C5 |
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-L | 只列出不符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 只显示匹配pattern部分 |
-F | 匹配固定字符串的内容 |
-E | 支持扩展的正则表达式 |
注意:
-E可以用egrep代替
grep还可以使用正则表达式去查询文件,在管道格式下也是可以用正则表达式的;其他更多的关于正则表达式的知识点可以去百度搜索一下。
< : 从匹配正则表达式的行开始
> : 到匹配正则表达式的行结束
\ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符
* :匹配“*”前面的字符,匹配0个或无数个
. :单个字符,匹配任意一个字符
[ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求
[^ ] : 显示不包括括号中字符串的所有行
[ ] : 单个字符,如[A] 即A 符合要求
-? : 同时显示匹配行的上下?行
^ : 匹配正则表达式的以“某字符串”开头的行
$ : 匹配正则表达式的以“某字符串”结尾的行
[:alnum:] 字母数字集 “a-z A-Z 0-9”
[:alpha:] 字母集合 “a-z A-Z”
[:blank:] 空格或制表键
[:cntrl:] 任何控制字符
[:digit:] 数字集合 “0-9”
[:graph:] 任何可视字符(无空格)
[:lower:] 小写字母 “a-z”
[:print:] 非控制字符
[:punct:] 标点字符
[:space:] 空格
[:upper:] 大写字母 “A-Z”
[:xdigit:] 十六进制数字 “0-9 a-f A-F”
下面的代码块里面是作者在虚拟机的输出结果,可以对照参数表看一下是什么样子的,例子不是很全,可以自己去试验一下。
[root@localhost shellec]# grep -l "root" /exercise/shellec/text.txt
/exercise/shellec/text.txt
[root@localhost shellec]# grep -r -l "root" /exercise/shellec/text.txt
/exercise/shellec/text.txt
[root@localhost shellec]# grep -r -n "root" /exercise/shellec/
/exercise/shellec/text.txt:2:root
[root@localhost shellec]# grep -r -c "root" /exercise/shellec/
/exercise/shellec/text.txt:1
/exercise/shellec/end:0
更多推荐
所有评论(0)