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次。可以把连续的东西通过正则匹配出来,一般与 [] 配合使用。

  {}  g{n,m}--前一个字符最少出现n次,最多m次;g{n}--前一个字符出现了n次;g{,m}--前一个字符最多出现m次;g{n,}--前一个字符最少出现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

猜你喜欢

转载自www.cnblogs.com/haocao-niu/p/11619622.html