gpt4 book ai didi

unix - 如何在 sed 的命令中使用变量?

转载 作者:行者123 更新时间:2023-12-03 05:58:35 25 4
gpt4 key购买 nike

我有abc.sh:

exec $ROOT/Subsystem/xyz.sh

在 Unix 机器上,如果我打印 echo $HOME 然后我得到 /HOME/COM/FILE

我想使用 sed 将 $ROOT 替换为 $HOME

预期输出:

exec /HOME/COM/FILE/Subsystem/xyz.sh

我尝试过,但没有得到预期的输出:

sed  's/$ROOT/"${HOME}"/g' abc.sh > abc.sh.1
<小时/>

添加:

如果我有abc.sh

exec $ROOT/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh

然后与

sed "s|\$INSTALLROOT/|${INSTALLROOT}|" abc.sh

它只是替换第一个$ROOT,即输出为

exec /HOME/COM/FILE/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh

最佳答案

说:

sed "s|\$ROOT|${HOME}|" abc.sh

注意:

  • 使用双引号,以便 shell 扩展变量。
  • 使用与 / 不同的分隔符,因为替换内容包含 /
  • 转义模式中的 $,因为您不想扩展它。

编辑:为了替换所有出现的$ROOT,比如说

sed "s|\$ROOT|${HOME}|g" abc.sh

关于unix - 如何在 sed 的命令中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151954/

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