SED和变量的小麻烦

时间:2014-10-02 10:49:03

标签: regex linux bash unix sed

嘿伙计们。

我是新来的,请善待:)。是的,我遇到了一些问题...... 我正在写一些脚本,并始终使用我的文档文件夹的绝对路径。像这样的东西:

cd /home/myname/documents/blabla/

更多或更多,我想清理代码,将其提供给其他人并将其更改为:

VARIABLE="/home/myname/documents"
cd $VARIABLE/blabla

因为脚本中有超过9000个绝对路径,我自然会想到使用SED来“清理”我的脚本。这就是问题所在:

sed -ie "s|home/myname/documents|$VARIABLE|g" script1

这给了我空的空间。我想用字符串“$ VARIABLE”而不是变量本身来交换路径。试过一些东西,如引号,一些括号,但无法弄清楚它是如何工作的。

所以我向你申请。你可以帮帮我吗? 我真的可以睡一觉...... ^^

非常感谢,抱歉我的英语。一个n00bie。

2 个答案:

答案 0 :(得分:3)

只需将"更改为'即可展开变量,但请按字面意思处理文字:

sed -ie 's|home/myname/documents|$VARIABLE|g' script1

编辑:也要注意初始的/,这样你就不要错过你的正则表达式没有删除它。

答案 1 :(得分:0)

sed -ie "s#home/myname/documents#\$VARIABLE#g" script1

替代方案,逃避$