Reputation: 105
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
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