A Perl One-Liner is a Perl script that is run as a single command passed to the interpreter all on one line. It isn’t saved to a file. All you really need to create the most basic one liner is the “-e” flag. If you want a script that behaves similar to AWK, Sed, or grep, then you will want an autmatically created loop. To do this you will generally either use the “-pe” or “-ne” parameters depending on whether or not you want it to print each line of input or not. The “-i” flag is optional but will allow you to edit files in place which is pretty handy.
|-p||create printing loop around commands|
|-n||create non-printing loop around commands|
|-e||specify script as argument instead of file|
|-i||modify input file in place, also creates a backup|
|-d||run under debugger|
|-t||tainted code will be treated as warning|
Replace the first occurence of “user1” with “user2” for each line:
ps -ef | perl -pe 's/user1/user2/'
Globally replace all numbers with the letter x:
ps -ef | perl -pe 's/\d/x/g'
Print columns 0 and 5:
ps -ef | perl -ne '@x=split(/ /, $_); print( @x." ".@x."\n")'