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.

posted @ 2014-10-30 16:06  zuiaishenlin  阅读(964)  评论(0)    收藏  举报