Newsgroups: comp.lang.perl.misc
Subject: Re: Canonical List of One-Liners
Date: 17 Jul 1997 16:03:39 GMT

add first and penultimate columns
perl -lane 'print $F[0] + $F[-2]'

just lines 15 to 17
perl -ne 'print if 15 .. 17' *.pod

in-place edit of *.c files changing all foo to bar
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c

command-line that prints the first 50 lines (cheaply)
perl -pe 'exit if $. > 50' f1 f2 f3 ...

delete first 10 lines
perl -i.old -ne 'print unless 1 .. 10' foo.txt

change all the isolated oldvar occurrences to newvar
perl -i.old -pe 's{\boldvar\b}{newvar}g' *.[chy]

command-line that reverses the whole file by lines
perl -e 'print reverse <>' file1 file2 file3 ....

find palindromes
perl -lne 'print if $_ eq reverse' /usr/dict/words

command-line that reverse all the bytes in a file
perl -0777e 'print scalar reverse <>' f1 f2 f3 ...

command-line that reverses the whole file by paragraphs
perl -00 -e 'print reverse <>' file1 file2 file3 ....

increment all numbers found in these files
perl i.tiny -pe 's/(\d+)/ 1 + $1 /ge' file1 file2 ....

command-line that shows each line with its charac
backwards
perl -nle 'print scalar reverse $_' file1 file2 file3 ....

delete all but lines beween START and END
perl -i.old -ne 'print unless /^START$/ .. /^END$/' foo.txt

binary edit (careful!)
perl -i.bak -pe 's/Mozilla/Slopoke/g' /usr/local/bin/netscape

look for dup words
perl -0777 -ne 'print "$.: doubled $_\n" while /\b(\w+)\b\s+\b\1\b/gi'