Привет!!
Вот есть такая проблема
есть некий конфиг в который скриптом на shell добавляются значения
конфиг должен всегда заканчиваться };
{
ip=192.168.1.1;
{
Template="123";
TransitSM={Direction=10sads;ReservedDirection=20sads;};
};
{
Template="[78]9234.(6)";
TransitSM={Direction=10sads;ReservedDirection=20sads;};
};};
Те нужно как то либо вырезать послед строчку
либо кидать значения перед ней
подскажите плз как это лучше сделать)
>Привет!!
>Вот есть такая проблема
>есть некий конфиг в который скриптом на shell добавляются значения
>конфиг должен всегда заканчиваться };
>Те нужно как то либо вырезать послед строчку
>либо кидать значения перед ней
>подскажите плз как это лучше сделать)
И в чем проблема? Удаляйте эту последнюю строку, пишите то, что вам
нужно и снова добавляйте ее.P.S. Если не знаете, как удалить из файла последнюю строку, так и
спросите. Подскажу.
>>Привет!!
>>Вот есть такая проблема
>>есть некий конфиг в который скриптом на shell добавляются значения
>>конфиг должен всегда заканчиваться };
>>Те нужно как то либо вырезать послед строчку
>>либо кидать значения перед ней
>>подскажите плз как это лучше сделать)
>
>
>И в чем проблема? Удаляйте эту последнюю строку, пишите то, что вам
>
>нужно и снова добавляйте ее.
>
>P.S. Если не знаете, как удалить из файла последнюю строку, так и
>
>спросите. Подскажу.Это и спрашиваю)
В принципе я сделал на awk но как слишком сложно всё сложно получилось
должно быть проще я думаю
напр. для bash можно так (не очень эффективно, первое, что пришло в голову):
###########################
#!/usr/bin/bash
FNAME=conf.txt
NEW_FNAME=new_conf.txt
NOF_LINES=$(( `cat $FNAME|wc -l` - 1 ))
head -n $NOF_LINES $FNAME > $NEW_FNAME
echo "something new" >> $NEW_FNAME
echo "};" >> $NEW_FNAME
>напр. для bash можно так (не очень эффективно, первое, что пришло в
>голову):
>###########################
>#!/usr/bin/bash
>FNAME=conf.txt
>NEW_FNAME=new_conf.txt
>NOF_LINES=$(( `cat $FNAME|wc -l` - 1 ))
>head -n $NOF_LINES $FNAME > $NEW_FNAME
>echo "something new" >> $NEW_FNAME
>echo "};" >> $NEW_FNAME
я сделал по другому)
config=config.txt
cat $config |awk '{gsub("^};","\n", $0); print $0}'>$config
>>напр. для bash можно так (не очень эффективно, первое, что пришло в
>>голову):
>>###########################
>>#!/usr/bin/bash
>>FNAME=conf.txt
>>NEW_FNAME=new_conf.txt
>>NOF_LINES=$(( `cat $FNAME|wc -l` - 1 ))
>>head -n $NOF_LINES $FNAME > $NEW_FNAME
>>echo "something new" >> $NEW_FNAME
>>echo "};" >> $NEW_FNAME
>
>
>я сделал по другому)
>config=config.txt
>cat $config |awk '{gsub("^};","\n", $0); print $0}'>$configнет, не интересно и кнопок много нажимать надо :)
sed -ni '/^};/{g;p;q};H' $config