Myh
Myh

Reputation: 105

Perl search and replace

I am trying to search for some strings in a file and replace them using perl:

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

How can I search and replace multiple string, since adding another commands just overwrites the output file:

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

In the last case only perl -pe "s/filename/$FNAME/" HeaderRBRS.xml > $HDIR/$FNAME.xml will be executed every time.

Thanks in advance.

Upvotes: 2

Views: 340

Answers (1)

Socowi
Socowi

Reputation: 27215

Pass all substitutions as one argument after -e. Delimit them by a semicolon ;.

perl -pe "s/filename/$FNAME/;s/RBRef/$REF/;..." infile > outfile

Upvotes: 1

Related Questions