字串攫取工具grep的常用命令

正则表达法

正则表达法以行为单位,进行字串的处理,通过一些特殊符号的辅助,可以达到[删除、查找、替换]某特定字串的目的。在linux中,vi、grep等工具支持正则表示法,掌握该方法的使用将大大增加我们的工作效率。刚开始学习grep时感到这个命令无可用处,后来在法系统日志中查找信息时才感到此命令的用武之地,因此这个命令使用方法比较适合系统管理员学习。

正则表示法常用字符

  • grep 语法格式 :grep [options] [pattern] [file]
    [options] 相关说明可以使用man grep查看帮助文件,[pattern]中语法要写在’ ‘中。
RE字符 意义与示范
^word 搜索字符串的首部为word
word$ 搜索字符串的未部为wrod
. 一定有一个字节 如grep -n ‘a.c’ filename.txt
* 重复前一个字符零到无穷次
[list] 提取含有list中字符的数据
[n1-n2] 提取含有n1至n2中任一字符的数据
^[] 取反操作
\{n,m\} 重复前一个字符n到m次
+ 重复前一个字符1到无穷次
重复前一个字符零到一次
| 或操作

示例讲解

写的太多终究是纸上谈兵,实践才是检验真理的唯一标准。演示内容为下面代码区的英文短文,可以直接复制在本机上,文件文取成song.txt。

this is my demonstrate.
Love is more thicker than forget
More thinner than recall
More seldom than a wave is wet
More frequent than to fail
It is most mad and moonly
And less it shall unbe
Than all the sea which only
Is deeper than the sea
Love is less always than to win
Less never than alive
Less bigger than the least begin
Less littler than forgive
It is most sane and sunly
And more it cannot die
Than all the sky which only
Is higher than the sky
  1. 搜索单个特定字符并显示其所在的行数
    这里写图片描述
    如图所是,我们搜索短文中包含Love所在的行,这个功能和[ctrl] + F功能框中的查找类似。

  2. 搜索多个字符并显示它们所在行数
    这里写图片描述
    由于使用了扩展符号|,必须使用egrep来进行操作,这一点就比[ctrl]+F强大。

  3. 搜索只知道部分字符和长度的字符串行数
    这里写图片描述
    假设我们知道该字符串的长度和未知字符的位置,就可以使用[.]号来表示该字符,如上图我们搜索首字母m,尾字母为e的字符串,命令为m..e即可。

  4. 搜索指定行首为特定字符串所在的行数
    这里写图片描述
    如上图所示,我们查找首行字符串为Love的行数,^字符直接跟字符串表示为行首,在[]内表示取反。

  5. 搜索指定行尾为特定字符串所在的行
    这里写图片描述
    我们搜索的行尾字符串为wet的行数,很简单。

  6. 使用中括号[]搜索集和字节
    这里写图片描述
    图片内容表示搜索的首字符为T或t的字符串,[]中的字符只有一个是有效的,切记。

总结

以上的内容知识简单的总结了以下常用的一些命令格式,包括查找单个、多个字符串所在的行,指定长度和部分字符串的查找、首尾指定字符串所在行的查找、[]集和字符的查找,相信这些就可以应对平时的运用的吧,毕竟大多数人不是系统管理员。

猜你喜欢

转载自blog.csdn.net/Leader_wang/article/details/82683890