gpt4 book ai didi

bash - 在 sed 的替换字符串中使用文件内容

转载 作者:行者123 更新时间:2023-11-29 09:37:37 25 4
gpt4 key购买 nike

我花了数小时进行搜索,但找不到解决方案。我有一个包含 1,000 多个 PHP 文件的目录。我需要按如下方式替换这些文件中的一些代码:

查找:

session_register("CurWebsiteID");

替换为(保存在replacement.txt中:

if(!function_exists ("session_register") && isset($_SERVER["DOCUMENT_ROOT"])){require_once($_SERVER["DOCUMENT_ROOT"]."/libraries/phpruntime/php_legacy_session_functions.php");} session_register("CurWebsiteID");

使用下面的命令,我可以用 $(cat replacement.txt) 替换模式,而我希望用文本文件的内容替换它们。

正在使用的命令:

找到 . -名称“*.xml” | xargs -n 1 sed -i -e 's/mercy/$(cat replacement.txt)/g'

我也尝试过使用变量代替 replacement=code_above; 并使用 $(echo $replacement) 运行调整后的版本,但这也无济于事。

实现这一目标的正确方法是什么?

最佳答案

这里不需要命令替换。您可以使用 sed r 命令插入文件内容,使用 d 删除与模式匹配的行:

find . -name "*.xml" | xargs -n 1 sed -i -e '/mercy/r replacement.txt' -e '//d'

关于bash - 在 sed 的替换字符串中使用文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42563935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com