志在指尖
用双手敲打未来

linuxgrep命令(用法详解)

linuxgrep命令

grep(globalsearchregularexpression(RE)andprintouttheline,全面查找正则表达式并把行打印出来)是一种强壮的文本查找东西,它能运用正则表达式查找文本,并把匹配的行打印出来。
Unix的grep宗族包含grep、egrep和fgrep。egrep和fgrep的指令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符,fgrep就是fixedgrep或fastgrep,它们把一切的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面含义,不再特殊。linux运用GNU版本的grep。它功用更强,可以经过-G、-E、-F指令行选项来运用egrep和fgrep的功用。linuxgrep
grep的工作方式是这样的,它在一个或多个文件中查找字符串模板。假如模板包含空格,则有必要被引用,模板后的一切字符串被看作文件名。查找的结果被送到规范输出,不影响原文件内容。grep可用于shell脚本,因为grep经过回来一个状况值来说明查找的状况,假如模板查找成功,则回来0,假如查找不成功,则回来1,假如查找的文件不存在,则回来2。我们利用这些回来值就可进行一些自动化的文本处理工作。

linuxgrep命令用法详解

1.作用
Linux体系中grep指令是一种强大的文本查找东西,它能运用正则表达式查找文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表明全局正则表达式版本,它的运用权限是一切用户。
2.格局
grep[options]
3.主要参数
[options]主要参数:
-a或–text不要疏忽二进制的数据。
-A<显现列数>或–after-context=<显现列数>除了显现契合范本款式的那一列之外,并显现该列之后的内容。
-b或–byte-offset在显现契合范本款式的那一列之前,标示出该列第一个字符的位编号。
-B<显现列数>或–before-context=<显现列数>除了显现契合范本款式的那一列之外,并显现该列之前的内容。
-c或–count核算契合范本款式的列数。
-C<显现列数>或–context=<显现列数>或-<显现列数>除了显现契合范本款式的那一列之外,并显现该列之前后的内容。
-d<进行动作>或–directories=<进行动作>当指定要查找的是目录而非文件时,有必要运用这项参数,不然grep指令将回报信息并中止动作。
-e<范本款式>或–regexp=<范本款式>指定字符串做为查找文件内容的范本款式。
-E或–extended-regexp将范本款式为延伸的一般表明法来运用。
-f<范本文件>或–file=<范本文件>指定范本文件,其内容含有一个或多个范本款式,让grep查找契合范本条件的文件内容,格局为每列一个范本款式。
-F或–fixed-regexp将范本款式视为固定字符串的列表。
-G或–basic-regexp将范本款式视为一般的表明法来运用。
-h或–no-filename在显现契合范本款式的那一列之前,不标示该列所属的文件名称。
-H或–with-filename在显现契合范本款式的那一列之前,表明该列所属的文件名称。
-i或–ignore-case疏忽字符大小写的不同。
-l或–file-with-matches列出文件内容契合指定的范本款式的文件名称。
-L或–files-without-match列出文件内容不契合指定的范本款式的文件名称。
-n或–line-number在显现契合范本款式的那一列之前,标示出该列的列数编号。
-q或–quiet或–silent不显现任何信息。
-r或–recursive此参数的作用和指定“-drecurse”参数相同。
-s或–no-messages不显现错误信息。
-v或–revert-match反转查找。
-V或–version显现版本信息。
-w或–word-regexp只显现全字契合的列。
-x或–line-regexp只显现全列契合的列。
-y此参数的作用和指定“-i”参数相同。linuxgrep
–help在线帮助。
pattern正则表达式主要参数:
\:疏忽正则表达式中特别字符的原有含义。
^:匹配正则表达式的开端行。
$:匹配正则表达式的完毕行。
\<:从匹配正则表达式的行开端。
\>:到匹配正则表达式的行完毕。
[]:单个字符,如[A]即A契合要求。
[-]:规模,如[A-Z],即A、B、C一向到Z都契合要求。
。:一切的单个字符。
*:有字符,长度可以为0。
4.grep指令运用简略实例
$grep‘test’d*
显现一切以d开头的文件中包括test的行。
$grep‘test’aabbcc
显现在aa,bb,cc文件中匹配test的行。
$grep‘[a-z]\{5\}’aa
显现一切包括每个字符串至少有5个连续小写字符的字符串的行。
$grep‘w\(es\)t.*\1′aa
假如west被匹配,则es就被存储到内存中,并标记为1,然后查找任意个字符(.*),这些字符后边紧跟着另外一个es(\1),找到就显现该行。假如用egrep或grep-E,就不必”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
5.grep指令运用复杂实例
假设您正在’/usr/src/Linux/Doc’目录下查找带字符串’magic’的文件:
$grepmagic/usr/src/Linux/Doc/*
sysrq.txt:*HowdoIenablethemagicSysRQkey?
sysrq.txt:*HowdoIusethemagicSysRQkey?
其中文件’sysrp.txt’包括该字符串,评论的是SysRQ的功用。
默认状况下,’grep’只查找当前目录。假如此目录下有许多子目录,’grep’会以如下形式列出:
grep:sound:Isadirectory
这可能会使’grep’的输出难于阅览。这儿有两种解决的办法:
明确要求查找子目录:grep-r
或疏忽子目录:grep-dskip
假如有很多输出时,您可以经过管道将其转到’less’上阅览:
$grepmagic/usr/src/Linux/Documentation/*|less
这样,您就可以更方便地阅览。
有一点要注意,您必需提供一个文件过滤方式(查找全部文件的话用*)。假如您忘了,’grep’会一向等着,直到该程序被中止。假如您遇到了这样的状况,按,然后再试。
下面还有一些有意思的指令行参数:
grep-ipatternfiles:不区别大小写地查找。默认状况区别大小写,
grep-lpatternfiles:只列出匹配的文件名,
grep-Lpatternfiles:列出不匹配的文件名,
grep-wpatternfiles:只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep-Cnumberpatternfiles:匹配的上下文别离显现[number]行,
greppattern1|pattern2files:显现匹配pattern1或pattern2的行,
greppattern1files|greppattern2:显现既匹配pattern1又匹配pattern2的行。
grep-npatternfiles即可显现行号信息
grep-cpatternfiles即可查找总行数
这儿还有些用于查找的特别符号:
\<和\>别离标示单词的开端与结尾。
例如:
grepman*会匹配‘Batman’、’manic’、’man’等,
grep‘\grep‘\’只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串内行首,
‘$’:指匹配的字符串内行尾,

未经允许不得转载:IT技术网站 » linuxgrep命令(用法详解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载