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]'表示匹配不包含小写字母的行
\< 匹配单词的开始,如’\
\> 匹配单词的结尾,如’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

grep + 正则表达式-实现高效查找_第1张图片

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

grep -c -i 'scan' *.txt  

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

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

grep + 正则表达式-实现高效查找_第2张图片

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

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

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

grep -v -n 'scan' *.txt

grep + 正则表达式-实现高效查找_第3张图片

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

grep   '\' *.txt

grep + 正则表达式-实现高效查找_第4张图片

你可能感兴趣的:(安全工具,正则表达式,linux,安全)