G'day zBernie,
Is the original data in a fixed format? If so, you can use unpack:
#!/usr/bin/env perl use 5.010; use strict; use warnings; while (<DATA>) { say '[', join(']~[' => map { s/\s*$//; $_ } unpack 'A8A14A22A6A9A3 +A*'), ']'; } __DATA__ 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
Output:
$ pm_split_space_sep_log.pl [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]
-- Ken
In reply to Re: How to split line with varying number of tokens?
by kcott
in thread How to split line with varying number of tokens?
by zBernie
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |