sed跨行替换

sedawkgrep一般认为是对行操作,而实际上sed可以跨行操作。

1
sed -e '/替换起始字符串/!b;:a;/替换终止字符串/bb;$!{N;ba};:b;s/替换起始字符串.*中间包含的特定字符串,进行限制,可以为空.*替换终止字符串/替换后的字符串/' -i 操作的文件

需要留意,对于特殊字符需要进行转义。

  • sed -e表示执行后面的脚本
  • 每一个分号表示一行命令
  • /替换起始字符串/!b;
  • :a;
  • /替换终止字符串/bb;
  • $!{N;ba};
  • :b;
  • s/替换起始字符串.\*中间包含的特定字符串,进行限制,可以为空.\*替换终止字符串/替换后的字符串/  替换命令
  • -i 修改文件