替换字符串中的GNU sed换行符/换行符

时间:2015-11-13 04:43:47

标签: regex bash sed zsh

我一直在尝试使用此sed命令中的各种变体,以便在替换字符串中插入换行符,并匹配我想要替换的多行字符串。但是,当我尝试使用^M\n时,它无效或创建\r

我使用GNU sed和zsh:

find ./ -type f -exec sed -i "s/<?php echo \$var_one;?>/<?php echo \$var_one;?>\n\n/g" {} \;

find ./ -type f -exec sed -i 's/<?php echo \$var_one;?>/<?php echo \$var_one;?>\n\n/g' {} \;

有没有办法用sed做这个,或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

我假设你有一个文件

<?php echo $var_one;?>/<?php echo $var_one;?>

是$ var而不是\$var

find -type f  -exec sed 's#\(<?php echo \$var_one;?>/<?php echo \$var_one;?>\)#\1\n#g' {} \;

用你的sed语句周围的单引号替换双引号

使用另一个分隔符,例如我使用#。如果您使用/,则会出现错误,因为/位于您的模式中。