![](https://csdnimg.cn/release/download_crawler_static/9397324/bg6.jpg)
使用 sed
使用 sed
Sed 命令列可分成编辑指令与文件文件部份。其中 , 编辑指令负责控制所有的编辑工作 ; 文件档表示
所处理的档案。sed 的编辑指令均由地址(address)与函数(function)两部份组成 , 其中 , 在执行时 , sed 利
用它的地址参数来决定编辑的对象;而用它的函数参数(批注[3])编辑。
此外 , sed 编辑指令 , 除了可在命令列上执行 , 也可在档案内执行。其中差别只是在命令列上执行时 ,
其前必须加上选项 -e ; 而在档案(批注[4])内时 , 则只需在其文件名前加上选项 -f。另外 , sed 执行编辑
指令是依照它们在命令列上或档内的次序。
下面各节 , 将介绍执行命令列上的编辑指令 、sed 编辑指令、执行档案内的编辑指令、执行多个档案
的编辑、及执行 sed 输出控制。
• 2.1 执行命令列上的编辑指令
• 2.2 sed 编辑指令
• 2.3 执行档案内的编辑指令
• 2.4 执行多个档案的编辑
• 2.5 执行 sed 输出控制
2.1.执行命令列上的编辑指令
当编辑指令(参照[section 2.2])在命令列上执行时 , 其前必须加上选项 -e 。其命令格式如下 :
sed -e '编辑指令 1' -e '编辑指令 2' ... 文件档
其中 , 所有编辑指令都紧接在选项 -e 之后 , 并置于两个 " ' " 特殊字符间。另外 , 命令上编辑指令的执
行是由左而右。
一般编辑指令不多时 , 使用者通常直接在命令上执行它们。例如 , 删除 yel.dat 内 1 至 10 行数据 , 并将
其余文字中的 "yellow" 字符串改成 "black" 字符串。此时 , 可将编辑指令直接在命令上执行 , 其命令如
下 :
sed -e '1,10d' -e 's/yellow/black/g' yel.dat
在命令中 , 编辑指令 '1,10d'(批注[5])执行删除 1 至 10 行数据 ; 编辑指令 's/yellow/black/g'(批注[6]) ,
"yellow" 字符串替换(substuite)成 "black" 字符串。
2.2 sed 的编辑指令
sed 编辑指令的格式如下 :
[address1[,address2]]function[argument]
其中 , 地址参数 address1 、address2 为行数或 regular expression 字符串 , 表示所执行编辑的数据行 ; 函
数参数 function[argument] 为 sed 的内定函数 , 表示执行的编辑动作。
下面两小节 , 将仔细介绍地址参数的表示法与有哪些函数参数供选择。
2.2.1 地址(address)参数的表示法