Linux下grep用法

基本元字符集及其含义

^

只匹配行首

$

只匹配行尾

*

匹配字符个数,匹配0或多个单字符

[]

匹配 []内字符。可以是一个单字符,也可以是字符序列。

可以使用-表示[] 内字符序列范围,如用[1-5] 代替 [12345]

/

用来屏蔽一个元字符的特殊含义

.

匹配任意单字符

+

匹配一个或多个字符 (适用于awk)

?

匹配0次或者1次(适用于awk)

pattern/{n/}

用来匹配pattern出现的次数,n为次数

pattern/{n,/}

同上,但次数最少为n

pattern/{m,n/}

同上,但次数在m与n之间

grep

grep是Unix/Linux中使用最广泛的命令之一。grep允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行。

grep一般格式为:

grep [选项] 基本正则表达式 [文件]

这里基本正则表达式可为字符串。

引号的使用

在grep命令中输入字符串参数时,最好将其用引号括起来。这样在查找时可以避免一些不必要的问题。比如查找多个单词组成的字符串’abc abc’,将变量作为字符串时“$STR” 等等。

grep选项

-c 只输出匹配行的计数

-i 不区分大小写

-h 查询多文件时不显示文件名

-l 查询多文件时只输出包含匹配字符的文件名

-n 显示匹配行及行号

-v 显示不包含匹配文本的所有行

使用grep精确匹配的一种有效方式是在抽取字符串后加/>假定精确抽取abc,方法如下:

grep ‘abc/>’ eg.out 返回的结果为包含abc单独字符串的行。

grep和正则表达式

1模式范围

grep ‘abc[de]’ eg.out

匹配abcd或者abce

2不匹配行首

grep ‘^[^abc]’ eg.out

不匹配行首为abc的行

3匹配任意字符

grep ‘a...e’ eg.out

匹配第一个字符为a,第五个字符为e,中间为任意字符的行.

4匹配日期

grep ‘[0-9]/{1,5/}-[0-9]/{2/}-[0-9]/{2/}’ eg.out

匹配含有2010-05-01这样形式的日期的行

5匹配空行

grep ‘^$’ eg.out

6匹配ip地址

grep ‘[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}’ eg.out

7其它

如果要查找目录列表中的目录,方法如下:

ls -l | grep ‘^d’

如果在一个目录中查询不包含目录的所有文件,方法如下:

ls -l | grep ‘^[^d]’

从系统上运行的进程中查询某一进程是否运行

ps aux | grep ‘named’

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值