Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I am attempting, to use perl to place text onto new lines. I have a tab delimited file which looks similar to this.
John Smith 25 May 2003 <job>Manager Clean-up
John Smith 25 May 2003 <job>Manager Clean-up <job>Manager Books
John Smith 25 May 2003 <job>Manager Clean-up <job>Manager Books <job>Manager Acounts
What I am trying to do is, where a 2nd, 3rd or more <job> appears, I want to place it onto a new line, but with the text up to the date with the information. The final output would look something like this.
John Smith 25 May 2003 <job>Manager Clean-up
John Smith 25 May 2003 <job>Manager Clean-up
John Smith 25 May 2003 <job>Manager Books
Can anybody help?
#!/usr/bin/perl -w use strict; open (INPUT, "jobs.txt"); open (OUTPUT, ">newjobs.txt"); while ( <INPUT> ) { my $TheLine = $_; while ($TheLine=~ [^\n]*##citation##[^\n]*##citation##[^\n]*##cita +tion##[^\n]*/i) { $TheLine=~ /([^\n]*)##citation##([^\n]*)##citation##([^\n]*)##cita +tion##([^\n]*)/$1\t$2\n$1\t$3\n$1\t$4/i; } while ($TheLine=~ /[^\n]*##citation##[^\n]*##citation##[^\n]*/i) { $TheLine=~ s/([^\n]*)##citation##([^\n]*)##citation##([^\n]*)/$1\t +$2\n$1\t$3/i; } print OUTPUT "$TheLine"; } close INPUT; close OUTPUT;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Placing text onto multiple lines
by vladb (Vicar) on May 11, 2003 at 22:31 UTC | |
Re: Placing text onto multiple lines
by pzbagel (Chaplain) on May 11, 2003 at 22:36 UTC | |
Re: Placing text onto multiple lines
by Limbic~Region (Chancellor) on May 11, 2003 at 22:33 UTC |
Back to
Seekers of Perl Wisdom