Perl поиск и замена - PullRequest
       10

Perl поиск и замена

0 голосов
/ 04 декабря 2018

Я пытаюсь найти некоторые строки в файле и заменить их с помощью perl:

perl -pe "s/filename/$FNAME/" Header.xml > $HDIR/$FNAME.xml

Как мне найти и заменить несколько строк, поскольку добавление других команд просто перезаписывает выходной файл:

perl -pe "s/RBRef/$REF/" HeaderRBRS.xml > $HDIR/$FNAME.xml
perl -pe "s/MessageIdentifier/$MessageIdentifier/" HeaderRBRS.xml > $HDIR/$FNAME.xml
perl -pe "s/FileDigestValue/$digestNr/" HeaderRBRS.xml > $HDIR/$FNAME.xml
perl -pe "s/filename/$FNAME/" HeaderRBRS.xml > $HDIR/$FNAME.xml

В последнем случае каждый раз будет выполняться только perl -pe "s/filename/$FNAME/" HeaderRBRS.xml > $HDIR/$FNAME.xml.

Заранее спасибо.

1 Ответ

0 голосов
/ 04 декабря 2018

Передайте все замены как один аргумент после -e.Разделите их точкой с запятой ;.

perl -pe "s/filename/$FNAME/;s/RBRef/$REF/;..." infile > outfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...