grep + 正则表达式-实现高效查找

grep + 正则表达式-实现高效查找

grep 是一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

  1. 参数说明

用法:grep [选项]… 模式 [文件]…

在每个<文件>中查找给定<模式>,模式使用的是正则表达式,最好使用单引号将它包含起来,这样可以避免shell的元字符对他的影响

-a: 将二进制文档以文本方式处理

-c: 显示匹配行的数目

-n: 输出的同时显示行号

-i: 忽略大小写

-A: 即After,显示匹配行后n行

-B: 即Before,显示匹配行前n行

-v: 表示反选

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

-E: 扩展正则表达式,虽然一般情况下,基本正则表达式就够用了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配

–color: 以特定颜色高亮显示匹配关键字

为避免搜索时每次都加–color参数,可以使用下列命令来永久添加该参数,

vim ~/.bashrc
alias grep='grep --color=auto'//在.bashrc文件中添加这句话,然后保存退出,在执行下条命令即可
source ~/.bashrc
  1. 正则表达式
^锚定行的开始 如:’^grep’匹配所有以grep开头的行
$锚定行的结束 如:'grep$'匹配所有以grep结尾的行
*匹配0个或多个向前符号,如’gr*p’匹配到的可能是gp,grp,grrp,grrrp等
.匹配任意一个非换行符的字符,如’g.rp’匹配到的是g后接任意一个字符,然后是rp,如garp,gorp等
[]匹配一个指定范围内的字符,如’[gh]rep’匹配到的是grep和hrep
[^]匹配不在该指定范围内的字符如’[^a-z]'表示匹配不包含小写字母的行
\<匹配单词的开始,如’\<grep’表示匹配以grep开头的单词的行
\>匹配单词的结尾,如’tion\>'表示匹配以tion结尾的单词的行
x\{m\}重复字符x,m次,如:'df{5}'匹配包含5个f的行
x\{m,\}重复字符x,至少m次,如:'df{5,}'匹配至少有5个f的行
\w匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p
\b单词锁定符,如: '\bgrep\b’只匹配grep
类似*,匹配0个或1个向前的字符,是懒惰模式的,贪婪模式下会尽量匹配最长的字符串,而懒惰模式会尽量匹配最短的字符串
  1. grep实例

1.匹配包含’scan‘的行,并显示行号

grep -n 'scan' *.txt

2.显示包含‘scan’或‘Scan’行的行数

grep -c -i 'scan' *.txt  

3.匹配以s开头,至少包含1个c,紧跟的是an的行

grep 'sc\{1,\}an' *.txt

4.匹配以sc开头,中间跟着任意2个数字,并且以.txt结尾的行

grep '^sc[0-9]\{2\}.txt$' *.txt

5.匹配不包含sacn的行,并显示行号

grep -v -n 'scan' *.txt

6.匹配以s开头,并且以tion结尾的单词

grep   '\<s.*tion\>' *.txt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值