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

字符串的条件判定

  • 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

相关推荐

  • 第六周作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的…

    Linux干货 2017-03-03
  • Linux如何快速查找需要执行的命令

    大家知道,对于熟悉命令行的用户来说,命令行操作比图形界面操作高效、简洁,那么Linux是如何快速找到命令的位置呢?今天刚学了这一部分,与大家分享。         Linux将命令分为内部命令和外部命令,这是由于一些命令是常用的,需要常驻内存以减少检索时间,所以集成在shell之…

    2017-07-15
  • 第八周

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch…

    Linux干货 2016-09-19
  • Nginx介绍及使用

       Nginx(engine x)是一个高性能的HTTP和反向代理服务器, 也是一个IMAP/POP3/SMTP服务器. Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的, 第一个公开版本在2004年发布. 因为它的稳定性, 丰富的功能集, 示例配置文件和低系统资源的消耗而闻名. Nginx是一款轻量…

    Linux干货 2016-11-11
  • shell脚本编程2

    shell脚本编程2   今天继续学习了shell脚本编程,续之前写的脚本编程1。上次主要学了编程的基础,脚本格式,变量类型及变量的使用,条件测试,数字运算并且进行了部分练习,因为这部分逻辑思维能力要求不是很高,因此记忆起来难度不是特别大。   从今天开始便进入了流程控制以及函数、数组、高级字符串操作、高级变量等内容的学习,总体来说难度和…

    Linux干货 2016-08-16
  • Docker入门

    一、Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。 Docker 容器通过 Docker 镜像来创建。 容器与镜像的关系类似于面向对象编程中的对象与类。 Docker 面向对象 容器 对象 镜像 类 Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的…

    2018-01-20