Linuxlinux

Linux命令学习----grep命令

2020-10-26  本文已影响0人  扮猪老虎吃

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所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

上一篇下一篇

猜你喜欢

热点阅读