第四章 编写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) 使用大括号可以实现地址的嵌套

【注意格式】左大括号必须在行末,并且右大括号必须单独占一行,要确保在大括号后无空格!!
本文详细介绍了sed的基本工作原理,包括模式空间的概念、隐式全局特性及其使用方式。通过实例展示了如何利用sed进行文本替换、删除指定行等操作。
265

被折叠的 条评论
为什么被折叠?



