проблема такая, есть файл:some {
}
{
some}
}
}изначально была задача, вставить блок текста перед последней }, для этого просто вставлял текст перед последней строкой, вот так:
bsd# gsed '$iserver' /tmp/sedtest
some {
}
{
some}
}
server
}но вот если в текста } не последняя, например последняя строка - пробел, то данная конструкция не работает :(
подскажите пожалуйста, как вставить текст после последней "}"
как вариант, используя tac
>[оверквотинг удален]
> some {
> }
> {
> some}
> }
> server
> }
> но вот если в текста } не последняя, например последняя строка -
> пробел, то данная конструкция не работает :(
> подскажите пожалуйста, как вставить текст после последней "}"удалить пустые строки?
sed -e '/^\s*$/d'
>[оверквотинг удален]
>> {
>> some}
>> }
>> server
>> }
>> но вот если в текста } не последняя, например последняя строка -
>> пробел, то данная конструкция не работает :(
>> подскажите пожалуйста, как вставить текст после последней "}"
> удалить пустые строки?
> sed -e '/^\s*$/d'все работает, спасибо
> все работает, спасибоне понимаю за что. ибо сущность вопроса для меня так и не ясна. особенно если учитывать наличие парных скобок в Вашем первоначальном вопросе. что/для_чего - хрен знает.
мой ответ заключался в том, что если мешают пустые строки - то удалите их, но очевидно, что это только частичное решение задачи.
Без tac-а, без удаления пустых. Крутое sed-о-мазо:$ seq 1 3|tr 3 }|sed '/}/{x;p;x;h};/}/!H;${x;i\
YYY
;p};d'