The internal bash parameter expansion functions (e.g. ${line%% *}) tend to be 
quite inefficient. Here is one example, compare the performance of bash 
substitution to Perl substitution:

#!/bin/bash
comma_sep=$(perl -e 'for($i=0;$i<1000;$i++) { print("$i;") };')
time space_sep=${comma_sep//;/ }
time space_sep=$(echo $comma_sep | perl -pe 's/;/ /g')

On my machine, the times look like this:

Bash:
real    0m2.140s
user    0m2.049s
sys     0m0.002s

Perl:
real    0m0.007s
user    0m0.010s
sys     0m0.002s

I got burned more than once by unexpected inefficiencies in bash. As others 
have said, Perl is very fast and reliable for large text manipulations. 

(The script is just an example to show the point. Replacing commas with spaces 
through substitution is not a good idea. Transliteration will do the job 
faster.)

HTH,

Tomas

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390
----------------------------------------------------------------------
For more information on Linux on System z, visit
http://wiki.linuxvm.org/

Reply via email to