我需要用FileA上的“ badfile'filepath \ badfile”替换“ badfile'C:users \ username \ desktop”的出现。换句话说,将badfile'C:users \ username \ desktop替换为badfile'filepath \ badfile

我尝试了以下方法,但没有效果

test=badfile 'C:users\\username\\desktop
test1=badfile 'filepath\\badfile
echo $test
echo $test1
sed -i 's|$test|$test1|g' FileA


我需要有关如何使此代码正常工作的帮助,否则将不胜感激。

最佳答案

你需要:


用双引号"封装变量的值,以在其值中保留单双引号字符。
转义反斜杠字符\,如\\
'命令中的单引号sed替换为双引号",以允许变量替换。使用单引号告诉您将字符串$test替换为字符串$test1


你得到:

test="badfile 'C:users\\\\username\\\\desktop"
test1="badfile 'filepath\\\\badfile"
echo $test
echo $test1
sed -i "s|$test|$test1|g" FileA

10-04 10:13