sed заменяет конец строки - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь добавить связку 0 в конце строки. Способ идентификации строки заключается в том, что за ней следует строка, начинающаяся с «expr1»

в Vim, что я делаю:

s/\nexpr1/ 0 0 0 0 0 0\rexpr1/

и работает нормально. Я знаю, что в Ubuntu \ n обычно используется для завершения строки, но всякий раз, когда я это делаю, я получаю символ ^ @, так что \ r отлично работает для меня. Я думал, что буду использовать это с sed, но на самом деле это не сработало. вот что я обычно пишу:

sed "s/\nexpr1/ 0 0 0 0 0 0\rexpr1/" infile > outfile

Ответы [ 3 ]

3 голосов
/ 11 февраля 2011

Маркер конца строки равен $. Попробуйте это:

s/$/ 0 0 0 0 0 0/

В зависимости от вашей среды вам может потребоваться экранировать $.

0 голосов
/ 11 февраля 2011
awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile
0 голосов
/ 11 февраля 2011
awk '{$0=$0" 0 0 0 0 0 "}1' file > tmp && mv tmp file

ruby -i.bak -ne '$_=$_.chomp!+" 0 0 0 0 0\n";print' file
...