搜索并替换所有文件中的URL

时间:2018-03-27 17:07:33

标签: linux shell sed text-processing

我希望运行脚本或命令来批量更改作为URL的字符串。我在这个论坛上看过很多例子,但都没有。

我创建了一个.sh文件来运行以下命令:

-mpreferred-stack-boundary=4

这不起作用。我认为这可能是因为搜索内容中有反斜杠?需要在.php文件的所有子目录中运行搜索/替换。

非常感谢任何协助。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先 - 检查变量定义。在bash中,变量定义通常不以前导$开头。即,应该是:

SRC='$url = "https://www.myurl.com/subdir/process.do"';
DST='$url="https://api.myurl.com/subdir/process.do"';

接下来,您应该切换到使用模式的单引号和变量的双引号,如下所示: https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-command

似乎有用的示例:

sed -i 's,'"$SRC"','"$DST"','

更新:这个确切的脚本在Linux上非常适合我:

 #!/bin/bash
 SRC='$url = "https://www.myurl.com/subdir/process.do"'; 
 DST='$url="https://api.myurl.com/subdir/process.do"';
 find . -type f -name "*.php" -exec sed -i 's,'"$SRC"','"$DST"',' {} \;

在主目录中创建的文件“asdf.php”的内容(在运行脚本之前):

 $url = "https://www.myurl.com/subdir/process.do"

运行脚本后文件“asdf.php”的内容:

 $url="https://api.myurl.com/subdir/process.do"