您的位置:首页 > 运维架构 > Linux

grep/egrep

2014-04-30 14:24 295 查看

grep/egrep

grep/egrep
grep一般格式为:
grep [选项] 基本正则表达式 [文件]
这里基本正则表达式可为字符串。

(1)输入字符串参数时,最好将其用双引号括起来。例如:"mystring"
(2)在调用变量时,也应该使用双引号,诸如: grep "$MYVAR" 文件名
(3)在调用模式匹配时,应使用单引号。例:grep '48[34]' data.txt

常用的grep选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。(屏蔽错误提示信息)
-v 显示不包含匹配文本的所有行。
-w或在抽取字符串后加\ > 精确匹配
[] 匹配模式范围,括号内都是或者关系,顺序不分先后,也可写成A-Z 这样的范围的形式
[^] 不匹配的模式范围
. 点--匹配任意字符
\{n\} 匹配n次 例: '5\{3\}' 匹配连续3个5
\{n,\} 匹配至少n次
\{n,m\} 匹配n-m次
-E 或者匹配
特殊字符 如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。

使用grep匹配“与”或者“或”模式

结合使用^和$可查询空行。使用- n参数显示实际行数
grep -v ^$ text //去除text中所有空行后再显示

补充说明:
参数 -1 -A1 -B1
1. grep -A1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之后的一行(After 1)

2. grep -B1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(Before 1)

3. grep -1 keyword filename

找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(After 1)和显示之后的一行(After 1)

egrep
以一个文件作为保存的字符串,然后将之传给egrep作为参数,为此使用- f开关。
使用文件中的每一行作为正则表达式进行匹配
# cat egrep01
s5
s6
#

# ll | egrep -f egrep01
-rwxrwSrwt 1 root root 166 Feb 6 17:53 s5
-rwxrwSrwt 1 root root 56 Feb 7 08:53 s6

grep -ir "hima_install_syslog" *
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux命令