linux内特殊符号通配符正则表达式

Posted haocao-niu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux内特殊符号通配符正则表达式相关的知识,希望对你有一定的参考价值。

1.特殊符号

‘ ‘  所见即所得。原样输出。

" "  特殊符号会被解析运行

` `   相当于$(),先运行括号里面的命令,把结果留下

> 重定向(先清空文件,再追加内容到文件)

>>    追加重定向(在文件最后追加内容)

2>    错误重定向

2>>     错误追加重定向

~       当前用户家目录

!  查找并运行历史命令。eg:!sed   查找最近的一条,包含sed的命令并运行。一般不用这个,用:history |grep sed

#  注释或root的命令行提示符

$  取变量的值   或  普通用户的命令行提示符

*  所有;任何东西

\\  转义字符

&&  前一个命令执行成功,再执行后一个命令。eg:ifdown eth0 && ifup  eth0

||  前一个命令执行失败,再执行后一个命令

2.通配符

 通配符是用来查找文件的

*    表示所有,任意

    生成序列

技术图片

 

 

3.正则表达式

通过符号表示文字内容。正则表达式是按照行进行处理的;禁止使用中文符号。

通配符和正则的区别:

  通配符--用来匹配查找文件名,linux大部分命令均可使用

  正则--在文件中匹配查找内容。grep/sed/awk/find命令支持,java、python这些高级语言内支持。

正则分类:

  基础正则:^    .    *    $    []    [^]    basic regular expression   BRE

  扩展正则:|    +        ()    ?        extened regular expression   ERE

  ^  行首

  .(点)  任何一个字符,不匹配空行  

  *  匹配前一个字符连续出现0次或1次以上     >=0次。注意:连续出现0次====什么也没有,就会把整个文件内容都显示出来。如:grep "w*" tmp.txt    会将tmp.txt整个文件内容显示出来

  $  行尾

  []  [ABC]------匹配A或B或C。中括号相当于一个符号,一次只匹配一个字符。

  [^]  [^ABC]------排除A或B或C的内容

  .*  所有字符,所有符号

 

  |  或者。如:egrep "456|abc" tmp.txt

  +  匹配前一个符号1次或多次    >=1次。可以把连续的东西通过正则匹配出来,一般与 [] 配合使用。

    gn,m--前一个字符最少出现n次,最多m次;gn--前一个字符出现了n次;g,m--前一个字符最多出现m次;gn,--前一个字符最少出现n次。

  ()  括号中内容相当于是一个整体。用于后向引用(反向引用)。常用于sed。eg:sed -r ‘s#.(.)..(..)#\\2#g‘ test.txt    sed -r ‘s#(.*)#\\1#g‘  test.txt    egrep "gr(a|e)y"  test.txt

  ?  前一个字符连续出现0次或1次

  

  支持基础正则    基础+扩展正则

         grep      egrep或grep -E

    sed            sed  -r

    awk            awk

 

以上是关于linux内特殊符号通配符正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

linux中 正则表达式和通配符的区别

12.25 -特殊符号,通配符与正则表达式

12.25 -特殊符号,通配符与正则表达式

4-19 Linux中的正则表达式 --- 字符匹配

12.25-- 特殊符号系列,通配符与正则表达式

Linux正则表达式