Как я могу напечатать сообщение для каждой замены в моей строке Perl? - PullRequest
0 голосов
/ 20 октября 2010

Я использую следующий синтаксис Perl в моем bash-скрипте:

     perl -i –pe  'next if /^ *#/; s/(\b|\D)$ENV{OLD }(\b|\D)/$1$ENV{NEW }$2/'   file

Я хочу найти в файле старое слово без первого символа "#", а затем заменяет старое слово новым словом

Мой вопрос: я хочу печатать «заменять $ OLD на $ NEW» каждый раз, когда perl заменяет $ OLD на $ NEW

Каким образом?мы можем вставить команду: print «заменил $ OLD на $ NEW»;в синтаксисе Perl?

Обратите внимание, что однострочный синтаксис perl является частью моего скрипта bash

Ответы [ 2 ]

2 голосов
/ 20 октября 2010

perl -i –pe 'next if /^ *#/; s/(\b|\D)$ENV{OLD }(\b|\D)/$1$ENV{NEW }$2/ && warn "replaced $OLD with $NEW\n"' file

1 голос
/ 20 октября 2010

perl -i –pe 'next if / ^ * # /; s / (\ b | \ D) $ ENV {OLD} (\ b | \ D) / $ 1 $ ENV {NEW } $ 2 / && print STDERR "заменил $ OLD на $ NEW \ n "'file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...