gpt4 book ai didi

shell - 获取 sed 错误

转载 作者:行者123 更新时间:2023-12-04 00:01:06 24 4
gpt4 key购买 nike

我是 shell 脚本的新手,但遇到此错误并且无法弄清楚发生了什么。

sed: 1: "/Users/local/Do ...": extra characters at the end of d command
sed: 1: "/Users/local/Do ...": extra characters at the end of d command
sed: 1: "/Users/local/Do ...": extra characters at the end of d command
sed: 1: "/Users/local/Do ...": extra characters at the end of d command

这是我正在运行的脚本
for fl in $(S_convertPath ${RESOURCE_DIR}/db)/db.changelog-*xml; do
sed -i "s/HOSTNAME/${IP_ADDRESS}/g" $fl
done

谢谢

最佳答案

鉴于 sed似乎认为您正在运行 delete line命令( d ),您可能希望输出命令以查看您的环境变量中的实际内容:

for fl in $(S_convertPath ${RESOURCE_DIR}/db)/db.changelog-*xml; do
echo sed -i "s/HOSTNAME/${PSM_SERVER_ADDRESS}/g" $fl
done

很有可能 PSM_SERVER_ADDRESS正在破坏您的 sed命令(并且可能需要进行处理以使其干净)。执行此操作的一种方法(前提是您有足够近的 sed )是使用未出现在环境变量中的分隔符,例如:
sed -i "s?HOSTNAME?${PSM_SERVER_ADDRESS}?g" $fl

既然您已经接受了这个答案,我不妨为您发现的其他问题添加解决方案。看来BSD sed与 Linux 不同,它要求您提供对 -i 的扩展。选项。因此,虽然 Linux 允许:
sed -i "sed-command"

要就地编辑,BSD 变体需要具有:
sed -i "" "sed-command"

带有空的备份后缀。

没有那个, sed可以使用您的命令作为扩展名,使用您的第一个文件名作为命令。

关于shell - 获取 sed 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648328/

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