我希望运行脚本或命令来批量更改作为URL的字符串。我在这个论坛上看过很多例子,但都没有。
我创建了一个.sh文件来运行以下命令:
-mpreferred-stack-boundary=4
这不起作用。我认为这可能是因为搜索内容中有反斜杠?需要在.php文件的所有子目录中运行搜索/替换。
非常感谢任何协助。
谢谢!
答案 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"