grep TestAge 中国软件测试时代+O`U/#{-} wG$jn
1.作用
9a:~'eeK3Z8J grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
s0fBa z4t2.格式
4}V {g8?*b.^8z grep [options]
Y"X_|i3.主要参数
,anCg/q'X%N`Zop[options]主要参数:
#{N#H^'o+wX7?6W-c:只输出匹配行的计数。 TestAge 中国软件测试时代6qi.h.l%k
-I:不区分大小写(只适用于单字符)。
%O3C-E8e K2OY-h:查询多文件时不显示文件名。
0Jr[0y}xs A!J-l:查询多文件时只输出包含匹配字符的文件名。 TestAge 中国软件测试时代 M#h G9{|7v5v6T
-n:显示匹配行及行号。
l `Fzhb%}'o-s:不显示不存在或无匹配文本的错误信息。 TestAge 中国软件测试时代5R o q S2jb7?"v1d*lL
-v:显示不包含匹配文本的所有行。 TestAge 中国软件测试时代R9`6C8K)],X
pattern正则表达式主要参数:
7dO3H9@EM:E/ :忽略正则表达式中特殊字符的原有含义。 TestAge 中国软件测试时代mOz5e4o
^:匹配正则表达式的开始行。
.z#b!G7/5r c'|w5HX,g$: 匹配正则表达式的结束行。
#G {#I#UM.u1~V<:从匹配正则表达式的行开始。
+M_*uz._']h `>:到匹配正则表达式的行结束。
!Q0m'qP*D gk[ ]:单个字符,如[A]即A符合要求 。 TestAge 中国软件测试时代K^/@fy$e:F"d
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 TestAge 中国软件测试时代l v~9{4A,X Ge
。:所有的单个字符。
u(S&p j0Wy u-sL3`N* :有字符,长度可以为0。 TestAge 中国软件测试时代:Ak:T}?w
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。 TestAge 中国软件测试时代%?E9faG4@;nZ.g
4.应用实例
j$f$G/FDa&Y 查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3 }.[0-0。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。 TestAge 中国软件测试时代[r)QL n2R Q
$grep '[0-9 ]{3 }.[0-0' ipfile
0p1d:OG Dw 补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式。
功能说明:查找文件里符合条件的字符串。
语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
参 数:
-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 此参数的效果和指定“-d recurse”参数相同。
-s或--no-messages 不显示错误信息。
-v或--revert-match 反转查找。
-V或--version 显示版本信息。
-w或--word-regexp 只显示全字符合的列。
-x或--line-regexp 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。
--help 在线帮助。
grep命令介绍 | ||||||||
本文出自:OHaHa的学习心得[ohaha.ks.edu.tw] 作者:蓝色泡泡(panda@ks.edu.tw) (2002-03-15 08:02:00) | ||||||||
|