in reply to Multiline regex for moving lines?
Rather than using a complicated regex you could read your records into an array then print in the desired order using an array slice.
use strict; use warnings; open my $inFH, q{<}, \ <<EOF or die $!; #EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000 80.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=400000 400.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000 700.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000 1500.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000 2500.m3u8 EOF my @records; push @records, scalar <$inFH>; push @records, join q{}, map scalar <$inFH>, 1 .. 2 while not eof $inFH; print for @records[ 0, 3, 1, 2, 4, 5 ];
The output.
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000 700.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=80000 80.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=400000 400.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000 1500.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000 2500.m3u8
I hope this is helpful.
Cheers,
JohnGG
|
---|
In Section
Seekers of Perl Wisdom