sed/awk, instead of Perl

Oliver Fromme olli at lurza.secnetix.de
Fri Aug 22 08:00:03 UTC 2008


Walt Pawley wrote:
 > Walt Pawley wrote:
 > > Walt Pawley wrote:
 > > > Steve Bertrand wrote:
 > > > > - read email addresses from a file in the format:
 > > > > 
 > > > > user.name TAB domain.tld
 > > > > 
 > > > > - convert it to:
 > > > > 
 > > > > user_name at example.com
 > > > > 
 > > > > - write it back to either a new file, the original file, or to STDOUT
 > > > 
 > > > I'm curious why Perl isn't a decent choice. I think I'd do something like
 > > > 
 > > > perl -pe 's/(.*?)\.(.*)\t.*/$1_$2 at example.com/' input_file > output_file
 > > 
 > > Which is also wrong. It gets a bit closer to Steve's desires I
 > > suspect if one adds the appropriate backslash ...
 > > 
 > > perl -pe 's/(.*?)\.(.*)\t.*/$1_$2@\example.com/' input_file > output_file
 > > 
 > > Sorry...
 > 
 > I guess getting old, nearly blind and mind numbing close to
 > brain dead is better than the alternative. Try this (sooner or
 > later I've got to get it right)...
 > 
 > perl -pe 's/(.*?)\.(.*)\t.*/$1_$2\@example.com/' input_file > output_file
 > 
 > Sorrier.

I think your attempts show very well why Steve wanted to
avoid perl.  :-)

But seriously, a few other reasons might include:

 - tr, sed, awk etc. are part of the FreeBSD base system,
   while perl is not.

 - The perl command you wrote above is pretty much a sed
   command anyway (except you incorrectly used non-portable
   regular expression syntax).  Why use perl to execute a
   sed command?

 - It is generally advisable to use the smallest, most
   light-weight tool that gets thew job done.  In this case
   that's clearly not perl:

   Size of sed:  27 KB.
   Size of perl + libperl:  1126 KB

   Thats more than 40 times bigger.

Of course, YMMV.

Best regards
   Oliver

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

"It combines all the worst aspects of C and Lisp:  a billion different
sublanguages in one monolithic executable.  It combines the power of C
with the readability of PostScript."
        -- Jamie Zawinski, when asked: "What's wrong with perl?"


More information about the freebsd-questions mailing list