使用 sed 命令查找和替换代码

使用 sed 命令查找和替换代码

我在多个文件中有一段 php 代码(内部<? php ... ?>),我想删除它。

我尝试将代码放入变量中:

var="<?php [some code in here] ?>"

然后运行这个:

find . -type f -name '*.php' -exec sed "s|$var| |" {} \;

或者

find . -type f -name '*.php' -exec sed -i 's/'"$var"'.*/'"$str"'/g' {} \;

(其中str =“”)

有没有办法做到这一点?

答案1

试试这个,但-i第一次删除以确保它有效:

var='echo rand(1, 10);'  # dummy code, change to whatever.
sed -i 's/<? php '"${var}"' ?>//' *.php

笔记:

  • 代码在$var被假定为单行代码。
  • 如果代码包含任何'单引号,请像这样转义它们\'
  • 上面假设空白变化不是问题,但它通常可能是问题。

相关内容