grep正则表达式操作命令(2)

[root@localhost ~]# grep "cd*" /tmp/test/b
aaabbbccc
abcabc
abcdefg
[root@localhost ~]# grep "a\?b"  /tmp/test/b
aaabbbccc
abcabc
abcdefg
[root@localhost ~]# grep "a\+b"  /tmp/test/b
aaabbbccc
abcabc
abcdefg
[root@localhost ~]# grep "a\{1,3\}b" /tmp/test/b
aaabbbccc
abcabc
abcdefg
[root@localhost ~]# grep "a\{2\}b" /tmp/test/b
aaabbbccc
[root@localhost ~]# grep "a\{2,\}b" /tmp/test/b
aaabbbccc
[root@localhost ~]# grep "a\{,2\}b" /tmp/test/b
aaabbbccc
abcabc
abcdefg
              位置锚定字符:
                  行锚定:
                      行首锚定:^
                      行尾锚定:$
                  字锚定:
                      字首锚定:\<或\b
                      字尾锚定:\>或\b

[root@localhost ~]# grep "^a\{,2\}b" /tmp/test/b
abcabc
abcdefg
[root@localhost ~]# grep "c$" /tmp/test/b
aaabbbccc
abcabc
[root@localhost ~]# grep "\<T..S\>" /tmp/test/b
THIS  IS  A  "TEST"
    分组与前向引用字符:
        \(\):将小括号中包含的内容作为一个不可分割的整体来处理;
        \1,\2,\3...:前向引用
        正则表达式处理引擎的内置变量,\1表示前面所出现的第一组小括号中括选的内容,\2表示前面所出现的第二组小括号中括选的内容;...

\(string1\(string2\)\):\1表示string1,\2表示string2;
        \(string1\).*\(string2\):\1表示string1,\2表示string2;

[root@localhost ~]# grep "\(root\).*\1" /etc/passwd
root:x:0:0:root:/root:/bin/bash
        或者:
          \|:将其左右的字符或字符串当做整体来对待;
              "C\|cat"  C  cat

[root@localhost ~]# grep "\(root\).*\1" /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep "root\|ex" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ex:x:1000:1000:ex:/home/ex:/bin/bash

扩展的正则表达式元字符:ERE(所有的元字符不用转义\符号,除了字首锚定和字尾锚定以外,其余的全部和上边一样。)
                  字符匹配类:
                  .:可以匹配任意单个字符
                  []:可以匹配任意指定范围内的单个字符;
                  [^]:可以匹配任意指定范围以外的单个字符;
                      下列所有的字符集都可以放置于[]之中用于匹配字符集范围内的单个字符;
                          [:lower:]:小写字母
                            [:upper:]:大写字母
                            [:alpha:]:大小写字母
                            [:digit:]:十进制数字
                            [:xdigit:]:十六进制数字
                            [:alnum:]:所有的十进制数字加上字母
                            [:punct:]:所有的标点符号
                            [:space:]:所有的空白字符
                            [a-z]:仅表示所有的小写字母
                            [A-Z]:仅表示的大写字母
                            [0-9]:仅表示所有的十进制数码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12922.html