我在rhel5上,遇到以下问题:
我有一个函数,用我想要的文本替换给定行中的所有内容.一切正常,直到我需要放置双引号.以下是代码:
ReplaceLine()
{
txnFile="File.xml"
if [ "$2" == "enable" ];then
replace=""
else
replace=""
fi
sed -i "$1s/.*/$replace/" $txnFile
}
$1=line number
$2=enable/disable
$3=string to be put
当前代码用以下代码替换文件中的给定行:
我想要的是:
请注意缺少双引号.另外我在sed中使用了双引号,因为没有它们,变量中的空格导致sed引发错误.
请帮助我了解我走错了路.已经花了几个小时.
解决方法:
您忘记了关闭标签的转义符.而且你放了两个斜线.
# one line solution
# sed -i "$1s/.*//" $txnFile
# ^ ^ ^
ReplaceLine()
{
txnFile="File.xml"
if [ "$2" == "enable" ];then
replace=""
else
replace=""
fi
sed -i "$1s/.*/$replace/" $txnFile
}
标签:unix,linux
来源: https://codeday.me/bug/20191031/1977764.html