grep, egrep, 基本正则表达式及扩展表达式;
什么是正则表达式? 正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。 正则表达式对Linux系统管理员工作有什么帮助? 通常情况下,由于系统在繁忙的情况下,每天产生的信息会多到你无法想象的地步,系统管理员需要每天去看很多的数据信息,从千百行的数据中找个出一行有问题的信息,难度太大! 这时,我们就可以通过正则表达式的功能,仅仅取出有问题的信息进行分析。如此,系统管理工作将会更加容易; grep、egrep的常用的参数选选项:
grep基本正则表达式匹配方式可以细分为几大类:字符匹配、匹配次数、限定、位置锚定、分组符;
实际运用举例: 例:如我们需要寻找在/etc/passwd文件下含有以r开头的行可以用如下命令; # grep ?color '^[r]' /etc/passwd 由输出结果我们可以看出,grep命令会自动筛选出我们需要的条件行显示出来,隐藏我们不需要的信息; 初学者经常对命令不熟悉经常会闹笑话,比如我们同样寻找/etc/passwd文件下以root开头的行,很多初学者会写成这样: # grep ?color '^[root]' /etc/passwd 看似没错.但是显示除的结果却不是我们需要的,下图是这条命令的输出结果: 我们能看到系统显示出了分别以‘r’‘o’‘t’为行首的行; 正确的书写格式如下; # grep ?color '^(root)' /etc/passwd 上图显示出的是我们需求的以‘root’开头的行。 我们也可以加上参数使其至显示我们匹配到的内容; 我在前的命令后面跟了一个‘-o’的参数,表示仅显示匹配到的内容。同时我们也可以‘-v’进行反向选取,就表示显示除‘root’开头的所有行: egrep及扩展的正则表达 egrep大部分表达方式与grep一致,仅有部分匹配格式对grep进行了简化,这里仅列出不同的选项;
例: 我们分别使用egrep和grep进行查找/etc/passwd 文件下的出现root的行(要求至少匹配一次),并进行对比; #grep --color ‘(root){1,}’ /etc/passwd #egrep --color ‘(root)+’/etc/passwd 由上面的两段命令可以看出要显示同样的结果往往egrep比grep的书写方式更简单; 很多时候由于对命令不熟悉,我们经常回记错格式,会把扩展的正则表达式用在grep中,我们这里可以尝试一下看会出现什么情况: 这里没有显示任何内容,然后我们使用echo $?查看到反馈为’1’这说明我们的命令没有执行成; 那有没有办法直接用grep来使用扩展正则表达式呢?当然有,我们只需要在命令后面加上-E就可以了;我们来尝试一下; 这里有结果反馈,已经执行成功了! 正则表达式,你明白了吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |