我在這裏是新的,我有一個問題,我無法弄清楚。我試圖用幾乎相同的行替換* .txt文件中的一行,但進行了修改。我仍然收到錯誤或輸出文件沒有改變。你能幫我麼?塞德替換線從變量
腳本:
var1=`grep "keyS.log\" type=" /C/tst/tst.txt`
x="<\!--"
if echo "$var1" | grep -q "$x"; then
echo "Already disabled";
else
prefix='<!-- '
sufix='-->'
modified=`echo "${var1/[[:space:]]/}" | sed 's:^.\(.*\).$:\1:'`
final="${prefix}${modified}${sufix}"
echo "${final}"
`sed -i 's/${var1}/${final}/g' /C/tst/tst.txt`
fi
行我想在文件中修改是這樣的:
<category="keyS" priority="1" appender="/tmp/keyS.log"/>
,應該是這樣的:
<!-- category="keyS" priority="1" appender="/tmp/keyS.log"/-->
有更多行從類別開始,在appender =後面可以有不同的路徑,因此它是動態的。
錯誤是這樣的:sed的 :1: 「/C/tst/tst.txt」:未定義標籤 'ST/tst.txt'
當我試圖使用
cat /C/tst/tst.txt | sed 's/${var1}/${final}/g' >> /C/tst/tsttmp.txt
線在tsttmp.txt中沒有改變,我也失去了行間距,所以整個文本是一行。
預先感謝您的任何幫助
斯坦尼斯