in reply to Split a file based on column
Although your data's a good candidate for a CSV parsing module, perhaps the following will assist:
use strict; use warnings; while (<>) { if ( my ($col2) = /^\d+\|(\d+?)\|/ ) { open my $fh, '>>', 'sample_1_' . $col2 . '.txt' or die $!; print $fh $_; } }
Usage: perl scriptName.pl sample_1.txt
The regex captures the value in the second column, and that's used later in creating the file name. The file's opened for appending, and the line's written to it. Since a lexically-scoped file handle is used, the file's automatically closed at the end of the if code block.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Split a file based on column
by brad_nov (Novice) on Jan 16, 2013 at 22:45 UTC | |
by Kenosis (Priest) on Jan 16, 2013 at 23:21 UTC |
In Section
Seekers of Perl Wisdom