forward-zone:
name: "."
forward-addr: 10.1.1.2
forward-zone:
name: "mydomain.com"
forward-addr: 10.1.1.1
我想删除模式'name:“。”之前的一行,并删除模式(包括模式本身)之后的一行。我尝试了以下命令,但这并未修改文件本身。我想进行就地修改。请帮忙
sed -n '/name: "."/{N;s/.*//;x;d;};x;p;${x;p;}' file
这样的事情可能适合。
sed -rne '/^name: "\."/{n;n;h;d};1{h;d};x;p;${g;p}' -i file
该-i
选项使Sed可以就地修改文件。Sed命令h
,g
并x
使用Sed的保持空间来保持前一行,直到检查了当前行。地址1
和$
分别处理文件的第一行和最后一行,这可能需要特殊处理。
尽管这是一项教育活动,但不可否认,对于这种多行处理,Awk甚至Perl可能比Sed更好。尽管如此,如您所见,Sed可以做一些额外的工作来完成这项工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句