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.f
48    Dec     3BC1997   LPSX    68.00   LVX2A  138
483   Sept    5AP1996   USP     65.00   LVX2C  189
47    Otc     3Z1998    LPSX    43.00   KVM9D  512
219   DEC     2CC1999   CAD     23.00   PLV2C  68
484   nov     7PA1998   CAD     49.00   PLV2C  234
483   may     5PA1998   USP     37.00   KVM9D  644
216   sept    3ZL1998   USP     86.00   KVM9E  234

包含“48”的行数:
grep -c "48" data.f
4

包含“48”的所有行:
grep "48" data.f
48    Dec     3BC1997   LPSX    68.00   LVX2A  138
483   Sept    5AP1996   USP     65.00   LVX2C  189
484   nov     7PA1998   CAD     49.00   PLV2C  234
483   may     5PA1998   USP     37.00   KVM9D  644

显示匹配行的行号:
grep -n "48" data.f
1:48    Dec     3BC1997   LPSX    68.00   LVX2A  138
2:483   Sept    5AP1996   USP     65.00   LVX2C  189
5:484   nov     7PA1998   CAD     49.00   PLV2C  234
6:483   may     5PA1998   USP     37.00   KVM9D  644

显示不包含“48”的行:
grep -v "48" data.f
47    Otc     3Z1998    LPSX    43.00   KVM9D  512
219   DEC     2CC1999   CAD     23.00   PLV2C  68
216   sept    3ZL1998   USP     86.00   KVM9E  234

忽略大小写:
grep -i "sept" data.f
483   Sept    5AP1996   USP     65.00   LVX2C  189
216   sept    3ZL1998   USP     86.00   KVM9E  234

grep和正则表达式:
1.不匹配行首:
grep '^[^48]' data.f
219   DEC     2CC1999   CAD     23.00   PLV2C  68
216   sept    3ZL1998   USP     86.00   KVM9E  234
2.模式范围:
grep '48[34]' data.f
483   Sept    5AP1996   USP     65.00   LVX2C  189
484   nov     7PA1998   CAD     49.00   PLV2C  234
483   may     5PA1998   USP     37.00   KVM9D  644
3.大小写
grep '[Ss]ept' data.f
483   Sept    5AP1996   USP     65.00   LVX2C  189
216   sept    3ZL1998   USP     86.00   KVM9E  234
4.匹配任意字符
  K后面3个字符,然后接着D:
grep 'K...D' data.f
47    Otc     3Z1998    LPSX    43.00   KVM9D  512
483   may     5PA1998   USP     37.00   KVM9D  644
  K后面跟着2个字符,然后接着9:
grep 'K.\{2\}9' data.f
47    Otc     3Z1998    LPSX    43.00   KVM9D  512
483   may     5PA1998   USP     37.00   KVM9D  644
216   sept    3ZL1998   USP     86.00   KVM9E  234
  头2个字符为大写字母,以C结尾,中间2个任意字符:
grep '[A-Z][A-Z]..C' data.f
483   Sept    5AP1996   USP     65.00   LVX2C  189
219   DEC     2CC1999   CAD     23.00   PLV2C  68
484   nov     7PA1998   CAD     49.00   PLV2C  234
  
grep '5..199[6,8]' data.f
483   Sept    5AP1996   USP     65.00   LVX2C  189
483   may     5PA1998   USP     37.00   KVM9D  644
  匹配一行中的任意位置:
grep '[0-9][0-5][0-6]' data.f
47    Otc     3Z1998    LPSX    43.00   KVM9D  512
484   nov     7PA1998   CAD     49.00   PLV2C  234
483   may     5PA1998   USP     37.00   KVM9D  644
216   sept    3ZL1998   USP     86.00   KVM9E  234
  匹配行首的位置:
grep '^[0-9][0-5][0-6]' data.f
216   sept    3ZL1998   USP     86.00   KVM9E  234
  至少出现n次:
grep '4\{2,\}' data.f
483   may     5PA1998   USP     37.00   KVM9D  644
5.使用grep匹配“与”或者“或”模式
-E:允许使用扩展模式匹配
grep -E '219|216' data.f
219   DEC     2CC1999   CAD     23.00   PLV2C  68
216   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  cdxx
drwxr-xr-x    2 xxxx   db2iadm1       4096 Dec  6 2006  incl
drwxr-xr-x    2 xxxx   db2iadm1        256 Nov 25 2010  src
drwxr-xr-x    2 xxxx   db2iadm1        256 Nov 25 2010  tbin
drwxr-xr-x    3 xxxx   db2iadm1       4096 Jul  5 2011  test
drwxr-xr-x    5 xxxx   db2iadm1        256 Sep 10 2010  tmp


ps命令,查询洗头膏上运行的进程。
[/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 Pauline

egrep:expression或extended grep,接受所有的正则表达式。
egrep '(3ZL|2CC)' data.f
219   DEC     2CC1999   CAD     23.00   PLV2C  68
216   sept    3ZL1998   USP     86.00   KVM9E  234


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值