linux grep用法大全

原文:http://orchidllh.itpub.net/post/4020/24280

在Unix中经常会用到grep去选取所需要的信息,用好grep有时可以到达意想不到的效果。  

Grep : g (globally) search for a re (regular expression_r_r ) and p(print ) the results.

1、参数:

-I:忽略大小写

-c:打印匹配的行数

-l:从多个文件中查找包含匹配项

-v:查找不包含匹配项的行

-n:打印包含匹配项的行和行标

2、RE(正则表达式)

\忽略正则表达式中特殊字符的原有含义

^匹配正则表达式的开始行

$匹配正则表达式的结束行

\<从匹配正则表达式的行开始

\>;到匹配正则表达式的行结束

[]单个字符;如[A]即A符合要求

[-]范围;如[A-Z]即A,B,C一直到Z都符合要求

.所有的单个字符

* 所有字符,长度可以为0

# cat zhao.conf(显示我们所查文件的内容)

48Dec3BC1997LPSX68.00LVX2A138

483Sept5AP1996USP65.00LVX2C189

47Oct3ZL1998LPSX43.00KVM9D512

219dec2CC1999CAD23.00PLV2C68

484nov7PL1996CAD49.00PLV2C234

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep -c "48" zhao.conf(统计所有以“48”字符开头的行有多少)

# grep -i "May" zhao.conf(不区分大小写查找“May”所有的行)

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep -n "48" zhao.conf(显示行号;显示匹配字符“48”所在的行的行号)

1:48Dec3BC1997LPSX68.00LVX2A138

2:483Sept5AP1996USP65.00LVX2C189

5:484nov7PL1996CAD49.00PLV2C234

6:487 may 5PA1998 USP 37.00 KVM9D 644

# grep -ni "may" zhao.conf(显示行号;显示匹配字符“may”所在的行的行号,不区分大小写)

# grep -v "48" zhao.conf(显示输出没有字符“48”所有的行)

47Oct3ZL1998LPSX43.00KVM9D512

219dec2CC1999CAD23.00PLV2C68

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep "471" zhao.conf(显示输出字符“471”所在的行)471 May 7Zh1999 UDP 37.00 KV30D 643

# grep "48>" zhao.conf(精确显示输出字符“48”所在的行)48 Dec 3BC1997 LPSX 68.00 LVX2A 138

# grep "48<tab>"zhao.conf(显示输出以字符“48”开头,并在字符“48”后是一个tab键所在的行

注:tab键,安一下tab键即可;和精确显示输出的结果是相同的)

48 Dec 3BC1997 LPSX 68.00 LVX2A 138

# grep "48[34]"zhao.conf(显示输出以字符“48”开头,第三个字符是“3”或是“4”的所有的行)

483Sept5AP1996USP65.00LVX2C189

484 nov 7PL1996 CAD 49.00 PLV2C 234

# grep '48[34]'zhao.conf(注意使用单引号(‘’)和使用双引号(“”)在Solaris8中输出的结果是一样的;

即:单引号、和双引号是通用的,只要你养成一种习惯就好)

483Sept5AP1996USP65.00LVX2C189

484 nov 7PL1996 CAD 49.00 PLV2C 234

# grep "^[^48]" zhao.conf(显示输出行首不是字符“48”的行)219 dec 2CC1999 CAD 23.00 PLV2C 68

# grep "[Mm]ay"zhao.conf(设置大小写查找:显示输出第一个字符以“M”或“m”开头,以字符“ay”结束的行)

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# cat zhao.conf(再次显示我们所使用的文件的内容)

48Dec3BC1997LPSX68.00LVX2A138

483Sept5AP1996USP65.00LVX2C189

47Oct3ZL1998LPSX43.00KVM9D512

219dec2CC1999CAD23.00PLV2C68

484nov7PL1996CAD49.00PLV2C234

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep "K...D"zhao.conf(显示输出第一个字符是“K”,第二、三、四是任意字符,第五个字符是“D”所在的行)

47Oct3ZL1998LPSX43.00KVM9D512

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep "[A-Z][A-Z][A-Z][9]D"zhao.conf(显示输出第一个字符的范围是“A-D”,第二个字符的范围是“A-D”,

第三个字符的范围是“A-D”,第四个字符是“9”,第五个字符的是“D”,所有的行:已知所查字符串的长度为5位)

47Oct3ZL1998LPSX43.00KVM9D512

487 may 5PA1998 USP 37.00 KVM9D 644

# grep "5..1998" zhao.conf487 may 5PA1998 USP 37.00 KVM9D 644

# grep "[35]..1998"zhao.conf(显示输出第一个字符是“3”或“5”,第二、三个字符是任意,以1998结尾的所有行;已知所查字符串的长度是7位)

47Oct3ZL1998LPSX43.00KVM9D512

487may5PA1998USP37.00KVM9D644

#

# grep "4{2,}" zhao.conf(模式出现几率查找:显示输出字符“4”至少重复出现两次的所有行)487 may 5PA1998 USP 37.00 KVM9D 644

# grep "9{3,}" zhao.conf(模式出现几率查找:显示输出字符“9”至少重复出现三次的所有行)

219dec2CC1999CAD23.00PLV2C68

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep "9{2,3}" zhao.conf(模式出现几率查找:显示输出字符“9”重复出现的次数在一定范围内(重复出现2次或3次)所有行)

48Dec3BC1997LPSX68.00LVX2A138

483Sept5AP1996USP65.00LVX2C189

47Oct3ZL1998LPSX43.00KVM9D512

219dec2CC1999CAD23.00PLV2C68

484nov7PL1996CAD49.00PLV2C234

487may5PA1998USP37.00KVM9D644

471 May 7Zh1999 UDP 37.00 KV30D 643

# grep -n "^$" zhao.conf(显示输出空行的行号)

相关推荐