![使用 sed 命令查找和替换代码](https://linux22.com/image/132537/%E4%BD%BF%E7%94%A8%20sed%20%E5%91%BD%E4%BB%A4%E6%9F%A5%E6%89%BE%E5%92%8C%E6%9B%BF%E6%8D%A2%E4%BB%A3%E7%A0%81.png)
我在多个文件中有一段 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
被假定为单行代码。 - 如果代码包含任何
'
单引号,请像这样转义它们\'
。 - 上面假设空白变化不是问题,但它通常可能是问题。