2011-02-11 4 views
1

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

в 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

Маркер конца строки $. Попробуйте следующее:

s/$/ 0 0 0 0 0 0/ 

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

0
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 
0
awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile 
+0

создает еще одно поле влияет на переменную FS. Например, файл с вкладками в качестве разделителя станет пространством. Обходным путем для этого явления является указание разделителя полей, который вряд ли появится в файле, например, -F "@ # @ #" – kurumi

 Смежные вопросы

  • Нет связанных вопросов^_^