本文共 1895 字,大约阅读时间需要 6 分钟。
grep的宗旨:显示一切的匹配行,这句话的是理解这个选项的重中之重
注意格式的写法
[root@oldboy_50 tmp]# awk '/[^ab]/' 1.txt aabbccaaeebbaaffggbbcceeabcc综合用法:[root@oldboy_50 tmp]# cat awk.txt aab bcccc bbaaa aa[root@oldboy_50 tmp]# awk '/[^a]/{print $2}' awk.txt bccbbaa 这一行也匹配出来了,是因为“空格”也属于非a的字符,也匹配上了[root@oldboy_50 tmp]# awk '/[^a ]/{print $2}' awk.txt 我们取非a和非“空格”的bccbb
[root@oldboy_50 tmp]# sed -n '/[^ab]/p' 1.txt aabbccaaeebbaaffggbbcceeabcc一般单纯的过滤字符串的时候我们配合-n和p使用,这样就能显示出我们想要行的结果
1.16 匹配连续字符串出现的次数
1.17 正则的引用所在的位置就看左侧的"("所在的位置,在第一个就是\1,第二个就是\2,嵌套引用也是这个道理1.18 \ 转义字符,专业人士称为“撬棍”. 表示任意单个字符。* 表示前面的字符连续出现任意次,包括0次。.* 表示任意长度的任意字符,与通配符中的*的意思相同。\ 表示转义符,当与正则表达式中的符号结合时表示符号本身。[ ]表示匹配指定范围内的任意单个字符。[^ ]表示匹配指定范围外的任意单个字符。
\? 表示匹配其前面的字符0或1次\+ 表示匹配其前面的字符至少1次,或者连续多次,连续次数上不封顶。\{n\} 表示前面的字符连续出现n次,将会被匹配到。\{x,y\} 表示之前的字符至少连续出现x次,最多连续出现y次,都能被匹配到,换句话说,只要之前的字符连续出现的次数在x与y之间,即可被匹配到。\{,n\} 表示之前的字符连续出现至多n次,最少0次,都会陪匹配到。\{n,\}表示之前的字符连续出现至少n次,才会被匹配到。
^:表示锚定行首,此字符后面的任意内容必须出现在行首,才能匹配。$:表示锚定行尾,此字符前面的任意内容必须出现在行尾,才能匹配。^$:表示匹配空行,这里所描述的空行表示"回车",而"空格"或"tab"等都不能算作此处所描述的空行。^abc$:表示abc独占一行时,会被匹配到。\ <或者\b :匹配单词边界,表示锚定词首,其后面的字符必须作为单词首部出现。\> 或者\b :匹配单词边界,表示锚定词尾,其前面的字符必须作为单词尾部出现。\B:匹配非单词边界,与\b正好相反。 或者\b>
\( \) 表示分组,我们可以将其中的内容当做一个整体,分组可以嵌套。\(ab\) 表示将ab当做一个整体去处理。\1 表示引用整个表达式中第1个分组中的正则匹配到的结果。\2 表示引用整个表达式中第2个分组中的正则匹配到的结果。
参考:朱哥博客http://www.zsythink.net/archives/tag/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/
转载于:https://blog.51cto.com/13447608/2152910