DAY11 正则表达式

来源:互联网 发布:mac打开网页一直转圈 编辑:程序博客网 时间:2024/06/06 20:35

   命令是有优先级的

  ==> alias
  ==> Compound Commands
    ==> function 
      ==> build_in
        ==> hash
          ==> $PATH
            ==> error: command not found

   alias 别名,具有最高的优先级

   alisa la ='ls -al'   unalias la

   内部指令,是BASH自带的命令 

   外部指令,一个在/bin/sbin/      /usr/bin 等地方

  

   当别名和内部指令都查不到时,找 $PATH,即环境变量。

 


   元字符

   bash的特殊字符,元字符是被shell解释的

   ''   $() 两者都是取命令的执行结果,前者有时候有嵌套缺陷,推荐使用后者。

   ~家目录

   !取非

   ! 命令    将命令的返回值取反

   @无特殊含义

   #注释

   $  变量取值    $() 同‘’        $[ ]整数计算  ${ }变量名的范围

  %杀后台进程jobs号

  ^取非 和!雷同

  &后台去行   &&逻辑与

  *匹配任意长度字符串

  ()在子进程中执行

    =赋值 

  |管道  ||逻辑或

  \转义 

   echo \\

   \

  ;接多个命令,无论对错,执行到最后一条命令,

   ""软引  ''硬引

   <输入重定向  >输出重定向

  >>追加

  >&合并2和1输出


    CTRL+A 行首 

    CTRL+E 行尾
     CTRL+U 删除自光标到行首串
     CTRL+K 删除自光标到行尾串 
     CTRL+L 清屏

      



     

    正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep、sed、awk,它们三者均可以解释正则。

 


   

-n  :显示行号
-o  :只显示匹配的内容
-q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc 
-A  :如果匹配成功,则将匹配行及其后n行一起打印出来
-B  :如果匹配成功,则将匹配行及其前n行一起打印出来
-C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
--color
-c  :如果匹配成功,则将匹配到的行数打印出来
-E  :等于egrep,扩展
-i  :忽略大小写

-v  :取反,不匹配
-w:匹配单词


^ 行首
$ 行尾
. 除了换行符以外的任意单个字符
* 前导字符的零个或多个
.* 所有字符
[] 字符组内的任一字符
[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
^[^] 非字符组内的字符开头的行
[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
\> 单词尾


  扩展grep正则 用egrep


几位老司机整理的,便于翻阅

Shell正则表达式

http://man.linuxde.net/docs/shell_regex.html

在线正则表达式测试

http://tool.oschina.net/regex/#

65条最常用正则表达式,你要的都在这里了

http://www.imooc.com/article/3591