gpt4 book ai didi

linux - 当变量再次具有特殊字符时,如何在 sed 命令中使用变量?

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:05 36 4
gpt4 key购买 nike

# test-1,没问题,它删除给定“cshrc”文件中的给定行

sed -i '\:alias reml rm -rf ${ENIP_HOME}/log/*:d' cshrc

# test-2,这不会删除给定“cshrc”文件中的行

LINE="alias reml rm -rf ${ENIP_HOME}/log/*"
sed -i '\:$LINE:d' cshrc

上面的 sed cmd 不会从 'cshrc; 中删除该行;文件,如何在 test-2 中执行行删除?

最佳答案

在变量扩展方面,单引号(')和双引号(")是有区别的。在您的设置中,只需替换双引号即可通过 LINE= 定义中的单引号,这样 ${ENIP_HOME} 就不会被替换(如果 undefined variable ,则为空字符串)。

您还需要在 sed 行中使用双引号,以便将 $LINE 替换为变量的定义。

关于linux - 当变量再次具有特殊字符时,如何在 sed 命令中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37988033/

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