заменить ';'с '; \ n' - PullRequest
       6

заменить ';'с '; \ n'

4 голосов
/ 12 июля 2011

Как я могу заменить ; на ;\n (точка с запятой с последующим переводом строки) в sed?

Я пытался построить из

sed s/;/\\n/g file

и

sed -e '/;/G' file

но я не могу заставить либо работать

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

Вам нужно немного обмануть: в bash вы можете сказать

sed $'s/;/;\\\n/g'

или, по-видимому (POSIX):

sed "s/;/;$(printf '\\\n')/g"

sed не переносимо / надежнообрабатывать обратную косую черту где угодно, но не в шаблоне, и даже там она ограничена (POSIX требует только обработки \n, а не \t или других).Обратите внимание, что перед \n также требуется обратная косая черта, поэтому sed не считывает ее как конец команды.

1 голос
/ 12 июля 2011
sed -ie 's/;/;\n/g' <file>

Предполагается, что вы хотите сделать это встроенным в файл, удалите "i" и просто используйте "-e", если это не так.

...