in reply to Help in converting awk in perl
Looking at the command line, it might be easier to not start with awk, but write perl from the start. This very much looks like a CSV data file, so you can use Text::CSV_XS and maybe this problem can be addressed using Spreadsheet::Read's xlsgrep and/or xlscat (both also grep CSV reliable)
The perl distribution comes with a a2p utility to convert awk code to perl:
$ echo '{out=$1;for (k=2;k<=NF;k++){out=sprintf("%s,%s",out,$k);}print + out}' | a2p | perltidy #!/pro/bin/perl eval 'exec /pro/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; # this emulates #! processing on NIH machines. # (remove #! line above if indigestible) eval '$' . $1 . '$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shi +ft; # process any FOO=bar switches $, = ' '; # set output field separator $\ = "\n"; # set output record separator while (<>) { chomp; # strip record separator @Fld = split (' ', $_, -1); $out = $Fld[(1) - 1]; for ($k = 2; $k <= ($#Fld + 1); $k++) { $out = sprintf ('%s,%s', $out, $Fld[$k]); } print $out; } $
From there on, you can modify to your hearts desire and include all other parts of your command line
|
|---|