hoopajoo.net
Printing modified data
Printing modified data
⇐ Back to One Liners

Questions, comments, or corrections? Send me a message.

Beside the -n switch mentioned in the looping data tip, there is a -p switch which is equivalent to:

while(><){
 # program
} continue {
 print;
}
So you're -e stuff goes in the middle. This can be leveraged to print some modified data using any perl expressions. For example:
perl -pe 's/(\d+)/$1=chr($1)/e' myfile.txt
Would take a file called myfile.txt that contained ascii codes separated by newlines and print NUM=CHARACTER. It is functionally equivalent to:
while(<>){
 s/(\d+)/$1=chr($1)/e;
} continue {
 print;
}
Which might be easier to understand if you're new to perl as:
open( IN, $ARGV[0] );
while( $line = <IN> ) {
 $line =~ s/(\d+)/$1=chr($1)/e;
 print $line;
}
close( IN );
Again, more perl runtime stuff at the perlrun manpage.