grep
--Global Regular Expressions Print
由来:
1、UNIX系统中,搜索的模式被称为正则表达式(regular expressions)。
2、为了要全面的彻底的搜索一个文件,有的用户在要搜索的字符串前加上前缀 global。
3、一旦找到相匹配的内容,用户就像将其输出(print)到屏幕上
作用:
从一个或者多个文件中,搜索符合某一特定的字符模式(正则表达式)的内容并进行显示,此模式可以是单一字符、字符串、单词或句子。
语法
grep [选项] 模式 文件名
// 搜索多个文件: grep命令只显示文件中发现匹配模式的文件名
//搜索单个文件,grep 命令的结果将显示每一个包含匹配模式的行
选项
--color 颜色着重显示命中的内容
-A n after,显示命中内容的前面多少行
-B n before,显示命中内容的后面多少行
-C n center,显示命中内容的前后多少行-c 统计出现匹配的次数。
-i 忽略大小写。
-l 列出带有匹配行的文件名。
-n 显示行号。
-v 列出没有匹配模式的行。反选
-w 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。
模式
c* 将匹配 0 个(即空白)或多个字符 c(c 为任一字符)。
. 将匹配任何一个字符,且只能是一个字符。
[xyz] 匹配方括号中的任意一个字符。
[^xyz] 匹配除方括号中字符外的所有字符。
^ 锁定行的开头。
$ 锁定行的结尾。
举例
grep -l ‘boss’ * 显示所有包含boss的文件名。
grep -n ‘boss’ file 在匹配行之前加行号。
grep -i ‘boss’ file 显示匹配行,boss不区分大小写。
grep -v ‘boss’ file 显示所有不匹配行。
grep -q ‘boss’ file 找到匹配行,但不显示,但可以检查grep的退出状态。(0为匹配成功)
grep -c ‘boss’ file 只显示匹配行数(包括0)。
grep “$boss” file 扩展变量boss的值再执行命令。
ps -ef|grep “^*user1′′ 搜索user1的命令,即使它前面有零个或多个空格。
ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’ 查找多个字符串的匹配(grep -E相当于egrep)
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
网友评论