Я новичок здесь, и у меня есть одна проблема, которую я не могу понять. Я пытаюсь заменить одну строку в файле * .txt почти той же строкой, но изменен. Я все еще получаю ошибки или выходной файл без изменений. Не могли бы вы мне помочь?Sed заменяющая линия с линией от переменной
Сценарий:
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
Line Я пытаюсь изменить в файле, как это:
<category="keyS" priority="1" appender="/tmp/keyS.log"/>
и должен быть таким:
<!-- category="keyS" priority="1" appender="/tmp/keyS.log"/-->
Есть несколько линий начиная с категории и может существовать другой путь за appender = так что он динамический.
Ошибка, как: СЭД: 1: "/C/tst/tst.txt": Неопределенная метка 'улица/tst.txt'
Когда я попытался использовать
cat /C/tst/tst.txt | sed 's/${var1}/${final}/g' >> /C/tst/tsttmp.txt
линии не изменяется в tsttmp.txt, и я потерял также межстрочный интервал, поэтому весь текст - одна строка.
Заранее спасибо за любую помощь
Станислав