6.sed替换命令的语法
sed '[地址范围|模式范围]' s/old/new/[替换标签]' inputfile
上面的sed替换命令语法:
地址范围或者模式范围是可选的,如果你没有指定,sed将在全文执行替换操作。
s:告诉sed执行替换操作。
old:在inputfile中查找这个字符串,old位置可以使用正则表达式。
new:sed将会使用这个字符串代替old。
替换标签是可选的,在下节会更多讲解。
记住源文件是不会修改的;替换操作只会替换模式空间里的值,然后输出到标准输出(stdout)。
下面是两个sed替换的例子(替换之后用黑体字标出)。
用Director替换所有的Manager:
$ sed 's/Manager/Director/' employee.txt
101,John Doe,CEO
102,Jason Smith,IT Director
103,Raj Reddy,Sysadmin
104,Anand Ram,Developer
105,Jane Miller,Sales Director
用Director替换那些包含'Sales'行中的Manager:
$ sed '/Sales/s/Manager/Director/' employee.txt
101,John Doe,CEO
102,Jason Smith,IT Manager
103,Raj Reddy,Sysadmin
104,Anand Ram,Developer
105,Jane Miller,Sales Director
注意此例使用地址范围只有一处变化而非上个例子中的两处变化。