AIX中grep命令介绍
grep三种变形1.grep:标准命令,查找文本,可使用正则表达式。2.egrep:扩展grep,支持基本及扩展的正则表达式,但不支持\p模式范围的应用。3.fgrep:快速grep,允许查找字符串而不是一个模式。在grep命令中,输入字符串参数时,最好将其用双引号括起来。grep命令选项:-c:只输出匹配行数-i:不区分大小写(只适用单字符)-h:查询多个文件时,不显示文件名-l:查询多文件时,只输出包含匹配字符的文件名-n:显示匹配行及行号-s:不显示不存在或无匹配文本的错误信息-v:显示不包含匹配文件的所有行查询多个文件:grep "sort" *.doc在所有文件中,查询"sort it":grep "sort it" *查看data.f文件的内容pg data.f48 Dec 3BC1997 LPSX 68.00 LVX2A 138483 Sept 5AP1996 USP 65.00 LVX2C 18947 Otc 3Z1998 LPSX 43.00 KVM9D 512219 DEC 2CC1999 CAD 23.00 PLV2C 68484 nov 7PA1998 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644216 sept 3ZL1998 USP 86.00 KVM9E 234包含“48”的行数:grep -c "48" data.f4包含“48”的所有行:grep "48" data.f48 Dec 3BC1997 LPSX 68.00 LVX2A 138483 Sept 5AP1996 USP 65.00 LVX2C 189484 nov 7PA1998 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644显示匹配行的行号:grep -n "48" data.f1:48 Dec 3BC1997 LPSX 68.00 LVX2A 1382:483 Sept 5AP1996 USP 65.00 LVX2C 1895:484 nov 7PA1998 CAD 49.00 PLV2C 2346:483 may 5PA1998 USP 37.00 KVM9D 644显示不包含“48”的行:grep -v "48" data.f47 Otc 3Z1998 LPSX 43.00 KVM9D 512219 DEC 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 234忽略大小写:grep -i "sept" data.f483 Sept 5AP1996 USP 65.00 LVX2C 189216 sept 3ZL1998 USP 86.00 KVM9E 234grep和正则表达式:1.不匹配行首:grep '^[^48]' data.f219 DEC 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 2342.模式范围:grep '48[34]' data.f483 Sept 5AP1996 USP 65.00 LVX2C 189484 nov 7PA1998 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 6443.大小写grep '[Ss]ept' data.f483 Sept 5AP1996 USP 65.00 LVX2C 189216 sept 3ZL1998 USP 86.00 KVM9E 2344.匹配任意字符 K后面3个字符,然后接着D:grep 'K...D' data.f47 Otc 3Z1998 LPSX 43.00 KVM9D 512483 may 5PA1998 USP 37.00 KVM9D 644 K后面跟着2个字符,然后接着9:grep 'K.\{2\}9' data.f47 Otc 3Z1998 LPSX 43.00 KVM9D 512483 may 5PA1998 USP 37.00 KVM9D 644216 sept 3ZL1998 USP 86.00 KVM9E 234 头2个字符为大写字母,以C结尾,中间2个任意字符:grep '[A-Z][A-Z]..C' data.f483 Sept 5AP1996 USP 65.00 LVX2C 189219 DEC 2CC1999 CAD 23.00 PLV2C 68484 nov 7PA1998 CAD 49.00 PLV2C 234 grep '5..199[6,8]' data.f483 Sept 5AP1996 USP 65.00 LVX2C 189483 may 5PA1998 USP 37.00 KVM9D 644 匹配一行中的任意位置:grep '[0-9][0-5][0-6]' data.f47 Otc 3Z1998 LPSX 43.00 KVM9D 512484 nov 7PA1998 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644216 sept 3ZL1998 USP 86.00 KVM9E 234 匹配行首的位置:grep '^[0-9][0-5][0-6]' data.f216 sept 3ZL1998 USP 86.00 KVM9E 234 至少出现n次:grep '4\{2,\}' data.f483 may 5PA1998 USP 37.00 KVM9D 6445.使用grep匹配“与”或者“或”模式-E:允许使用扩展模式匹配grep -E '219|216' data.f219 DEC 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 234 空行:[开发]/usr/xxxx/ytcclb>grep '^$' info.txt[开发]/usr/xxxx/ytcclb> 匹配IP地址:grep '[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}' *.address类类名及其等价的正则表达式————————————————————————————— 类等价的正则表达式[[:upper:]][A-Z][[:lower:]][a-z][[:digit:]][0-9][[:alnum:]][0-9a-zA-Z][[:space:]]空格或tab键[[:alpha:]][a-zA-Z]——————————————————————————————系统grep命令结合管道命令,|,将左边的输出结果作为右边命令的输入查找目录列表中的列表:ls -l | grep '^d'查询目录中不包含目录的所有文件:ls -l | grep '^[^d]'[/home/xxxx/ytcxx]> ls -l | grep '^d.....x..x'drwxr-xr-x 4 xxxx db2iadm1 256 Nov 15 2010 cdxxdrwxr-xr-x 2 xxxx db2iadm1 4096 Dec 6 2006 incldrwxr-xr-x 2 xxxx db2iadm1 256 Nov 25 2010 srcdrwxr-xr-x 2 xxxx db2iadm1 256 Nov 25 2010 tbindrwxr-xr-x 3 xxxx db2iadm1 4096 Jul 5 2011 testdrwxr-xr-x 5 xxxx db2iadm1 256 Sep 10 2010 tmpps命令,查询洗头膏上运行的进程。[/home/xxxx/ytcclb]> ps ax | grep "named" 376944 pts/0 A 0:00 grep named[/home/xxxx/ytcclb]> ps -ef | grep "named" xxxx 573474 557246 0 10:20:42 pts/0 0:00 grep named字符串使用grep命令:STR="Mary Joe Peter Pauline"echo $STR | grep "Mary"Mary Joe Peter Paulineegrep:expression或extended grep,接受所有的正则表达式。egrep '(3ZL|2CC)' data.f219 DEC 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 234