RE(正则表达式)基础之grep工具

RE:Regular Expression,用来描述规则的表示法。
grep:基于RE的文本搜索工具

如果你想要只查找行首为“the”的字符行,则使用以下命令
$ grep -n '^the' 文件名   (-n 表示按行输出)

表示’the‘前面没有符号。

'^[A-Z]' 表示以大写字母开头。
'[^A-Z]' 表示除了大写字母 A-Z 的所有字符。
查找以 e 字母结尾的行:
grep -n 'e$' 文件名
查找空行:
$ grep -n '^$' 文件名

注: $表示空

| 运算符

管道符号,是unix一个很强大的功能,符号为一条竖线:"|"。

用法:

command 1 | command 2

他的功能是把第一个命令command 1执行的结果作为command2的输入传给command 2,例如:

$ls -s|sort -nr (请注意不要复制$符号进去哦)

-s 是file size,-n是numeric-sort,-r是reverse,反转
该命令列出当前目录中的文档(含size),并把输出送给sort命令作为输入,sort命令按数字递减的顺序把ls的输出排序。

 $ grep -n 'b.fo.e' 文件名

‘b.fo.e’ : 小数点表示任意一个字符,一个小数点只能表示一个未知字符。

(星号):代表重复前面 0 个或者多个字符。

g: 表示具有空字符或者一个以上 g 字符。

gg,表示前面的第一个 g 字符必须存在。第二个 g 则可以是 0 个或者多个 e 字符。

ggg,表示前面两个 g 字符必须存在。第三个 g 则可以是 0 个或者多个 g 字符。

gg*g :表示前面的第一个与第三个 g 字符必须存在。第二个 g 则可以是 0 个或者多个 g 字符。

下面的第一条命令与第二条命令由于允许存在空字符,所以会打印所有文本。

$ grep -n 'g*' 文件名
$ grep -n '@*' 文件名
$ grep -n 'ggg*' 文件名
查找行首为大写字母的所有行:
$ grep -n '^the' 文件名
'^[A-Z]' 表示以大写字母开头。
'[^A-Z]' 表示除了大写字母 A-Z 的所有字符。
查找连续的两个 g 字符:
$ grep -n 'g{2}' 文件名

结果与命令 grep -n ‘ggg*’ 文件名 的结果相同。

查找 o 后面接 2 到 5 个 g,然后再接 g 的字符串

$ grep -n 'og{2,5}g' 文件名

总结:

^word 表示带搜寻的字符串(word)在行首

word$ 表示带搜寻的字符串(word)在行尾

.(小数点) 表示 1 个任意字符

\ 表示转义字符,在特殊字符前加\会将特殊字符意义去除

表示重复 0 到无穷多个前一个 RE(正则表达式)字符

[hello] 表示搜索含有 h,e,l,l,o 的任意字符的字符串

[n1-n2] 表示搜索指定的字符串范围,例如[0-9] [a-z] [A-Z]等

[^hello] 表示反向字符串的范围,例如 [^0-9] 表示非数字字符, [^A-Z] 表示非大写字符范围

{n,m} 表示找出 n 到 m 个前一个 RE 字符

{n,} 表示 n 个以上的前一个 RE 字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值