我需要用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