gpt4 book ai didi

Bash 脚本 sed 使用导致 ZSH 出现问题

转载 作者:行者123 更新时间:2023-12-05 05:22:54 26 4
gpt4 key购买 nike

我有一个 Bash 脚本,我用它来拉入多个存储库以创建我们项目工作流的新实例,它根据命令行提供的信息执行大量字符串替换。

一位同事使用 ZSH,并且一直遇到问题,这些问题似乎是由于在脚本中使用 sed 而导致的。具体来说似乎是它没有处理正则表达式?例如……

    # Author Name.
if [[ $authorname ]]
then
sed -i "" "s/Author Name/$authorname/g" "$file"
fi

导致以下错误:

sed: can't read "s/Author Name/$authorname/g" : No such file or directory

我们发现,通过添加 -e 标志,大多数字符串替换错误都会消失,但是他仍然会遇到一些“未找到”错误...

sed: can't read : No such file or directory

有没有更好的方法来执行对 Bash 和 ZSH 都友好的字符串替换?

最佳答案

假设您使用的是 GNU sed,它不像 BSD sed 那样采用 -i "" 之类的模式来就地编辑文件.

来自 man sed:

-i[SUFFIX], --in-place[=SUFFIX]

你需要去掉中间的空格:

sed -i"" "s/Author Name/$authorname/g" "$file"

或者由于您没有进行任何备份,只需执行以下操作:

sed -i "s/Author Name/$authorname/g" "$file"

关于Bash 脚本 sed 使用导致 ZSH 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330131/

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