首页 > 代码库 > SED:如何限定修改范围?

SED:如何限定修改范围?

有时候,我们修改配置文件的时候,需要限定出某些区域sed不能修改。例如:

sed -e 1,100 s/Okay now//g -e 200,$ s/Okay now//g config_file

我们注意到,第101行到第199行被sed忽略掉了。

我们还注意,这里使用的是s///,替换表达。如果使用删除例如://d,则必须放在大括号“{}”里。”//a\“ 添加也是一样! 例如:

sed -e 1,100 {/Okay now/d} -e 200,$ {/Okay now/d} config_file


2. 如果我们不知道确切的行号,而是只知道关键字,则我们可以用“/关键字/"来代替行号,例如:

sed -e ^,/Okay no/ {/Okay now/ d} -e ^,/Okay no/ {/Okay no/a\Okay now} config_file

这个表达式把从开头到Okay no的行中Okay now删除了,然后在Okay no后又从新添加了Okay now.

SED:如何限定修改范围?