BASH脚本,在sed中正确引用变量?

山人

此变量Btr =“ / home / BB / PL / DDr /”; 已成功回显,因此我知道它应该可用,但这些sed均无法正常工作。

我尝试过的各种语法,都没有用。

1。

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/'$Btr'\2/');

2。

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/'${Btr}'\2/');  

3。

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/"$Btr"\2/');  

4,

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/"${Btr}"\2/');  

5,

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/'"$Btr"'\2/');  

6,

    Lg=$(echo "${Prg}" | sed 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/"'$Btr'"\2/');  

7

    Lg=$(echo "${Prg}" | sed -e "s/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/'${Btr}'\2/");  

8。

    Lg=$(echo "${Prg}" | sed -e 's/\(\/home\/in\/PL\/\)\(.*_Data.txt\)$/'${Btr}'\2/');  

目的是要更改这样的一行:

| tee -a /home/in/PL/SomeFile_Data.txt

对此:

| tee -a /home/BB/PL/DDr/SomeFile_Data.txt

布拉德·拉纳姆(Brad Lanam)

@fstd的答案。更改定界符。

  Lg=$(echo ${Prg} | sed 's,/home/in/PL/\(.*_Data\.txt\)$,'$Btr'\1,')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章