Linux命令grep linux命令grep用法( 四 )


假设我们要找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串,他会是这样:
[root@www ~]#grep-n'go\{2,5\}g' regular_express.txt18:google is the best toolsforsearch keyword.
如果我想要的是 2 个 o 以上的 goooo....g 呢?除了可以是 gooo*g ,也可以是:
[root@www ~]#grep-n'go\{2,\}g' regular_express.txt18:google is the best toolsfor search keyword.19:goooooogle yes!
扩展grep(grep -E 或者 egrep):
使用扩展grep的主要好处是增加了额外的正则表达式元字符集 。
打印所有包含NW或EA的行 。如果不是使用egrep,而是grep,将不会有结果查出 。
#egrep'NW|EA' testfile
northwestNWCharles Main3.0.98334easternEATB Savage4.4.84520
对于标准grep,如果在扩展元字符前面加\,grep会自动启用扩展选项-E 。
#grep'NW\|EA' testfile
northwestNWCharles Main3.0.98334easternEATB Savage4.4.84520
搜索所有包含一个或多个3的行 。
#egrep'3+' testfile
# grep-E'3+' testfile
# grep'3\+' testfile
#这3条命令将会
northwestNWCharles Main3.0.98334westernWESharon Gray5.3.97523northeastNEAM Main Jr.5.1.94313centralCTAnn Stephens5.7.94513
搜索所有包含0个或1个小数点字符的行 。
#egrep'2\.?[0-9]' testfile
# grep-E'2\.?[0-9]' testfile
# grep'2\.\?[0-9]' testfile
#首先含有2字符,其后紧跟着0个或1个点,后面再是0和9之间的数字 。
westernWESharon Gray5.3.97523southwestSWLewis Dalsass2.7.8218easternEATB Savage4.4.84520
搜索一个或者多个连续的no的行 。
#egrep'(no)+' testfile
# grep-E'(no)+' testfile
# grep'\(no\)\+' testfile#3个命令返回相同结果,
northwestNWCharles Main3.0.98334northeastNEAM Main Jr.5.1.94313northNOMargot Weber4.5.8959
不使用正则表达式
fgrep 查询速度比grep命令快,但是不够灵活:它只能找固定的文本,而不是规则表达式 。
如果你想在一个文件或者输出中找到包含星号字符的行
fgrep'*' /etc/profile
for i in /etc/profile.d/*.sh ; do

grep -F '*' /etc/profile
for i in /etc/profile.d/*.sh ; do
Linux常用指令---grep(搜索过滤)(转)Linux常用指令---grep(搜索过滤) (转)
Linux系统中grep命令是一种强大Linux命令grep的文本搜索工具,它能使用正则表达式搜索文本 , 并把匹 配的行打印出来 。grep全称是Global Regular Expression Print , 表示全局正则表达式版本 , 它的使用权限是所有用户 。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板 。如果模板包括空格 , 则必须被引用 , 模板后的所有字符串被看作文件名 。搜索的结果被送到标准输出,不影响原文件内容 。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0 , 如果搜索不成功 , 则返回1,如果搜索的文件不存在,则返回2 。Linux命令grep我们利用这些返回值就可进行一些自动化的文本处理工作 。
1.命令格式:
grep [option] pattern file
2.命令功能:
用于过滤/搜索的特定字符 。可使用正则表达式能多种命令配合使用,使用上十分灵活 。
3.命令参数:
-a--text#不要忽略二进制的数据 。
-A显示行数--after-context=显示行数#除Linux命令grep了显示符合范本样式的那一列之外,并显示该行之后的内容 。
-b--byte-offset#在显示符合样式的那一行之前 , 标示出该行第一个字符的编号 。
-B显示行数--before-context=显示行数#除Linux命令grep了显示符合样式的那一行之外 , 并显示该行之前的内容 。

推荐阅读