Difference between revisions of "Perl/Scripts"

From Christoph's Personal Wiki
Jump to: navigation, search
 
(External links)
Line 74: Line 74:
 
*[http://www.ibm.com/developerworks/linux/library/l-p101/ Cultured Perl: One-liners 101]
 
*[http://www.ibm.com/developerworks/linux/library/l-p101/ Cultured Perl: One-liners 101]
 
*[http://www.ibm.com/developerworks/linux/library/l-p102.html Cultured Perl: One-liners 102]
 
*[http://www.ibm.com/developerworks/linux/library/l-p102.html Cultured Perl: One-liners 102]
 +
*[http://homepages.cwi.nl/~rooij/programming/oneliners.html Oneliners and other very short programs]
 +
*[http://www.perlmonks.org/?node_id=135345 Perl's pearls]
 +
*[http://www.ajs.com/ajswiki/Perl_one-liners Perl one-liners]
 +
*[http://www.visualgenomics.ca/gordonp/oneliners.html Perl one-liners for the bioinformatician]
 +
*[http://sial.org/howto/perl/one-liner/ Perl One Liners]
 +
*[http://www.amazon.com/o/ASIN/1932394508/sialorg-20/ref=nosim Minimal Perl: For UNIX and Linux People]
  
 
[[Category:Scripting languages]]
 
[[Category:Scripting languages]]

Revision as of 05:49, 5 July 2007

The following is a compilation of useful one-line scripts for Perl. The original was compiled by Tom Christiansen, however, I have converted it into the wiki format and have added more examples (always adding more).

Perl one-liners

  • run contents of "my_file" as a program
perl my_file
  • run debugger "stand-alone"
perl -d -e 42
  • run program, but with warnings
perl -w my_file
  • run program under debugger
perl -d my_file
  • just check syntax, with warnings
perl -wc my_file
  • useful at end of "find foo -print"
perl -nle unlink
  • simplest one-liner program
perl -e 'print "hello world!\n"'
  • 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 characters backwards
perl -nle 'print scalar reverse $_' file1 file2 file3 ....
  • delete all but lines between 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'
  • command-line that prints the last 50 lines (expensively)
perl -e '@lines = <>; print @lines[ $#lines .. $#lines-50' f1 f2 f3 ...

External links