正则表达式的简单用法以及管道和重定向
副标题[/!--empirenews.page--]
正则表达式(Regular EXPression),简单的来说,就是用一些符合某种语法规则的字符串来实现其检索的功能。我们这里以 grep 为例,来学习正则表达式: grep:使用基本正则表达式定义的模式来过滤文本的命令; grep的用法: grep [options] PATTERN [FILE ...] options: -i:忽略字符大小写 --color:匹配的字符显示颜色 例:alias grep=grep --color) -v:显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 -E:使用扩展的正则表达式 -A:显示匹配文件后边的两行 -B:显示匹配文件前边的两行 -C:匹配文件前后两行的内容都显示 正则表达式: 基本正则表达式 扩展正则表达式 (其匹配次数处于贪婪模式,即尽可能长的匹配。) 基本正则表达式 元字符 .:匹配任意单个字符 # grep 'root.' a.txt --> 显示在a.txt文件中含有root并且其后面跟了任意字符的行 *:匹配其前面的字符任意次(可以为0次) a*b --> b,ab,aab,aaab # grep 'a*b' test.txt .*:匹配任意长度的任意字符 a.*b: ab,aab,amnb. --> (文件中含有以a开头b结尾的行) ?:匹配器前面的字符1次或0次 (部分匹配就行) {m,n}:匹配其前面的字符至少m次,至多n次. (修饰第一个前面的字符) # grep 'a{1,3}b' test.txt --> 匹配a至少一次至多3次 [ ]:匹配指定范围内的任意单个字符 [0-9]: 取0-9中的任意一个数字 [^]:匹配指定范围外的任意单个字符 [^[0-9]] : 非0-9的任意一个字符 字符集合 [:space:]:空白字符 [:punct:]:标点符号 [:lower:]:小写字母 [:upper:]:大写字母 [:alpha:]:大小写字母 [:digit:]:数字 [:alnum:]:数字和大小写字母 位置的锚定: ^:锚定行首,此字符后的任意内容必须出现在行首 grep "^root" /etc/passwd --> 在/etc/passwd文件中以root为行首的行 $:锚定行尾,此字符前的任意内容必须出现在行尾 bash$ --> 以bash为行尾的行 ^$:空白行 <或b:锚定词首,其后面的任意字符必须作为单词首部出现 <abab --> abab后边还有字符,一般用于规定某个字符串不处于行尾 >或b:锚定词尾,其前面的任意字符必须作为单词的尾部出现(用法同上) 分组:() (ab)* :ab可以出现任意次或0次。(将ab看成一个整体) 后向引用:后边可以调用前边出现的字符串 ()...1..2..3 n:第n个左括号以及与之对应的右括号所包括的所有内容 # grep '^([0-9]).*1$' /etc/inittab --> 在/etc/inittab文件中,以一个数字开头并以同样的数字结尾的行 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |