细节决定成败–空格的巨大作用以及正则表达式中元字符的转义

字符串的条件判定

  • 1.字符串判定 一定要用双[[ ]]

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • 2.字符串判定=~默认支持扩展正则表达式,这里注意双引号的使用

    • 仅仅做是否包含时,有无双引号无区别。

    • 但是利用其他扩展表达式时 双引号一定要去掉
      细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    • 锚定示例
      细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    • 多条件判定时-o -a使用时,不能使用双中括号

      细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

空格有无的差别

!的使用细节

!到目前为止 有两种意义 条件判定取反 历史命令的调用 两者的使用却别!后面是否接空格

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

find 命令中的-exec command {} \;  尾部的空格一定要注意,一个都不能少不能少


细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

正则表达式的元字符 在不同命令中的转义与非转义

sed 命令中模式的查找与替换

  • sed 命令默认支持基本正则表达式
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • 搜索时需要转义的字符$ ! [ . \ ‘ “
    的 示例:
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    ^ 的示例

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    \的示例

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    ‘ 的示例 : 注意 这里转义单引号也不成功

  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    “ 的示例

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • 其中 ! 在命令使用 双引号时需要转义,单引号时则无需转义

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • 替换时需要转义的字符& \ ‘ “

    源文件中的内容
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    \ 的示例;

    注意 : 在命令使用不同引号时的转义方式不一样

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    ’  ” 引号的示例:

    注意: 这里和搜索时一样  单引号无法用转义来实现,双引号可以

  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

vim 命令行搜索替换默认支持基本正则表达式

  • 搜索时需要转义的字符$ [ \ ~ .

    原文件内容:

  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • 如果$不转义,被当成变量了

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    不加转义符的结果:
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    加转义符的结果:

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    [ 的示例 :

    不加 转义符的结果: 显示  pattern 不存在, 此时 [被当成了命令。
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

            加  转义符的效果 :

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义
    结果  a 后面的 [  被成功替换成ok 
细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

          ~ 的 使用 :
        原文中 ~ 的位置 :
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    不使用转义符时:~ 被当成了某种引用

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义
    所以 只能使用 转义符来表达~本来的意义

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

结果:
细节决定成败--空格的巨大作用以及正则表达式中元字符的转义
 

       

  • 替换式需要转义的字符& ~ \

    & 示例

    这里以替换 t 来演示:


  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    不加转义符时,& 是完全引用搜索内容的意思,所以不用转义符内容无所变化
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义


  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    加上转义符 来看看效果 :
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    t 顺利的被替换成了 &
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

        ~ 的示例:

      不加 转义符时 :
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

t 被替换成了 & ,原因时~ 直接引用了上次替换的结果,所以这里t 就直接被替换成了 &

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义


    来看看加转义符的效果 :

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

  • \ 的示例:

    不加转义符时,内容直接被替换成了\ 后面的内容。

  • 细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    再看看正确的写法:

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

    t 成功被替换成了 \
    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

最后,默认支持扩展正则表达式的 :条件判断时,=~ 

注意单引号与双引号使用时$的区别

  • 双引号 或者不使用引号时 $ 则表示引用变量的意思,这里引号的不同和echo 命令一样, 单引号时完全引用, 双引号是 智能型引用。

    细节决定成败--空格的巨大作用以及正则表达式中元字符的转义

如果有错误之处请在评论处指正,谢谢

原创文章,作者:zhoulz,如若转载,请注明出处:http://www.178linux.com/71338

(0)
zhoulzzhoulz
上一篇 2017-03-19 13:25
下一篇 2017-03-19 16:15

相关推荐

  • 脚本数组及yum软件包管理器

    一、数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 数组名和索引索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续) 1.定义数组声明数组:    declare …

    Linux干货 2016-08-25
  • LINUX初次见面

    LINUX的文件系统 在Linux的眼睛中,一切都为文件,这也是Linux的中心哲学思想。正因如此造就了一个性能稳定,功能强大,效率高的操作系统。Linux有自己的层级标准,它定义了每个系统分区的用途,和所需要的最小构成文件目录。由不同的文件来完成不同的功能造就了一个Linux的完整生态。 linux的文件系统格式比较丰富,它的核心系统能支持十多种文件系统类…

    2017-05-18
  • 数学集合–德摩根定律

    初中数学学过集合的概念: ~表示补集 ∩表示交集 ∪表示并集 ∈表示属于 !表示取反 条件: x属于C集合中之外的部分:~C 证明:   ∵x∈~C    x属于集合c的补集     x∈~(A∩B)    想属于a和b…

    Linux干货 2016-08-15
  • xen虚拟化基础篇

    Xen介绍:  xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得无需特殊硬件支持,就能达到高性能的虚拟化。 Xen由三部分组成:     第一部分…

    Linux干货 2015-08-26
  • linux 系统日志管理

         在linux系统上面,系统可以记录从开机到当前系统上面何时发生了那些事情,并将其分类,分级别写到特定的日志文件当中,如系统自身产生的问题,用户登录信息,网络数据信息等等。我们可以根据这些日志信息来解决系统方面的错误,网络服务问题等等。日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错…

    2017-08-14
  • linux的发展形成杂谈

    纵观linux的发展,可以看得出Linux是那个时代的产物,是操作系统群雄并起时候的真名天子。从1945年第一台计算机发明开始,人民就开始产生了对操作的系统的需求,首先是单个命令的输入,然后是单批次工作的产生,之后就是多批次流程的产生,然后就是多任务多批次流程,人民一直一直不懈的努力研发一个真正意义上的操作系统。 终于,在70年代,大神级的人物KenThom…

    Linux干货 2016-10-31