http://www.perlmonks.org?node_id=1031034


in reply to How to split line with varying number of tokens?

$ echo "REQID DEST FROM DATE TIM +E nPages RCV 138454 mail_room Marco's Pizza 12/26 21:52 1 rcv 138446 custsvc 973 618 0577 12/26 18:44 1 rcv 138445 county2 spam 12/26 18:41 3 rcv 138444 custsvc spam 12/26 18:30 1 rcv 138439 county2 7182737253 12/26 17:54 2 rcv 138438 county2 Acme Products, Inc. 12/26 17:52 1 rcv " | +perl -e' while ( <> ) { my $line = reverse; my ( $rcv, $pages, $time, $date, $rest ) = map scalar reverse, spl +it " ", $line, 5; my ( $reqid, $dest, $from ) = split " ", $rest, 3; print join( " ", map qq/"$_"/, $reqid, $dest, $from, $date, $tim +e, $pages, $rcv ), "\n"; } ' "REQID" "DEST" "FROM" "DATE" "TIME" "nPages" "RCV" "138454" "mail_room" "Marco's Pizza" "12/26" "21:52" "1" " +rcv" "138446" "custsvc" "973 618 0577" "12/26" "18:44" "1" "rcv +" "138445" "county2" "spam" "12/26" "18:41" "3" "rcv" "138444" "custsvc" "spam" "12/26" "18:30" "1" "rcv" "138439" "county2" "7182737253" "12/26" "17:54" "2" "rcv" + "138438" "county2" "Acme Products, Inc." "12/26" "17:52" "1" + "rcv"