Как установить новую строку с помощью sed с помощью c \? - PullRequest
0 голосов
/ 10 декабря 2011

Я чувствую себя глупо, но попробовал несколько способов получить новую строку в моем сценарии.Я получил помощь от Джонатана с командой sed.Он отлично работал, но форматирование потеряно, и теперь я не могу найти способ заставить его работать.

Код выглядит так:

su -c "sed -i '/aStyle.Landscape {/,/}/c\
            MImAbstractKeyAreaStyle.Landscape {\
                /*** Label Setttings ***/\
                label-margin-top: 10.6mm; /* 0.6 */\
                label-margin-left-with-secondary: -1; /* not used, labels are centered horizontally */\
                secondary-label-separation: 0;\
...
                /*** Key Area Geometry ***/\
                size: 854 -1;\
            }' file.css"

Я хотел заменить абзац надругой.Но с помощью этой команды все печатается в одну строку.Я хочу сохранить форматирование.Мой оригинальный вопрос здесь: Как заменить абзац в файле?

Ответы [ 2 ]

3 голосов
/ 10 декабря 2011

Первая попытка без su -c.Между вашими "" кавычками экранирование отличается и делает его намного более сложным.

Когда вы закончите, поместите результат в файл сценария и вызовите его с помощью su -c ./script.sh, или адаптируйте экранирование(но это никогда не будет хорошо).

0 голосов
/ 10 декабря 2011

Это может работать для вас:

echo hello | sed '/.*/c\This first line is no longer "hello"\nand this is the second line\nand this the third line'
This first line is no longer "hello"
and this is the second line
and this the third line

В GNU sed вы можете встраивать символы новой строки \n, но, пожалуйста, смотрите мой исправленный ответ на последний вопрос (с использованием документа здесь) для ответа WYSIWYG.

...