《Sed 和 Awk》(第二版)学习系列之第四章

来源:互联网 发布:数据产品经理面试 编辑:程序博客网 时间:2024/05/12 23:09
 

第四章 编写sed脚本

1. undo命令可以撤销一个命令的影响。

2. sed的基本工作原理:

【解释】sed的工作过程中,会维护一个模式空间,即一个工作区或者临时缓冲区,在应用编辑命令时,那里存放单个输入行,即包含有单个输入行的备份,当某行完成应用编辑并输出后,将会将下一行放入模式空间中。

3. sed命令的隐式全局特性:默认情况下,sed会将命令应用于所有行。

s/CA/California/g----------------------sed会将文件中的所有CA替换为California

   (1) 为了解除这种限制,可以采用行地址对上下文进行限制,如:

    /Sebastopol/s/CA/California/g--------------只会将包括“Sebastopol, CA”的行进行替换

   (2) 地址可以指定多个,行地址可以是描述模式、行号或者行寻址符号的正则表达式。

   (3) 地址规则:

     ♥ 若没指定地址,则命令应用于所有行;

     ♥ 若只有一个地址,则命令应用于与这个地址匹配的任意行;

     ♥ 若指定了由逗号隔开的两个地址,那么命令应用于匹配第一个地址的第一行和它后面的行,知道

匹配第二个地址的行(包括此行)

       ♥ 若地址后面有感叹号,那么命令将应用于不匹配该地址的所有行。

   (4) 以删除命令d为例解释地址规则:

       nd-----------表示删除第n行

       $d-----------$此处表示行的结束,删除最后一行   

         /^$/d----------删除空行,以正则表达式作为地址

       /^\.TS/, /^\.TE/d-------------删除从第一个模式开始到第二个模式结束的行

   (5) 使用大括号可以实现地址的嵌套

     【注意格式】左大括号必须在行末,并且右大括号必须单独占一行,要确保在大括号后无空格!!

 

原创粉丝点击