жемчуг + добавляет WORD в конце последней строки в файле

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

     perl -p -i -e 's/$/WORD/;' file

Но это, добавляют WORD в каждой строке-

Как зафиксировать синтаксис жемчуга для добавления WORD только на последней строке в файле

пример

  more file

  AAAAA BBB
  WWWWW
  EEEEE WORD
2
задан 12.10.2010, 16:20

3 ответа

Необходимо обнаружить '' ve удар конца файла с помощью eof:

perl -p -i -e 'eof && s/$/WORD/;'  file
4
ответ дан 08.12.2019, 05:08

Просто добавьте -0 флаг:

perl -0pie 's/$/WORD/' file

Я никогда не использовал бы -i без добавленного расширения между прочим. Если Ваш Perl не сделает то, что Вы предназначили, то Ваш вход будет потерян. Между прочим, ; не разделитель оператора в Perl, а разделитель операторов.

perl -i.orig -0pe 's/$/WORD/' file

Другая удобная идиома, для тестирования:

perl -0pe 's/$/WORD/' file | diff file -
1
ответ дан 08.12.2019, 05:08

Вот эквивалентное использование sed:

sed -ie '$s/$/WORD/' file
2
ответ дан 08.12.2019, 05:08

Теги

Похожие вопросы