这个变量, BTR = “/家/ BB / PL / DDR /”; 成功回应,所以我知道它应该可用,但这些都不能正常工作。
我尝试过的语法变体,其中没有一个可行。
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
答案 0 :(得分:1)
a=1
echo 'b' | sed 's/b/'$a'/'
a=1
echo 'b' | sed "s/b/$a/"
a=1
echo 'b' | sed 's/b/'"$a"'/'
答案 1 :(得分:0)
@ fstd的回答。更改分隔符。
Lg=$(echo ${Prg} | sed 's,/home/in/PL/\(.*_Data\.txt\)$,'$Btr'\1,')