- 论坛徽章:
- 7
|
就像下面的一样:- #!/usr/bin/perl
- use 5.016;
- my $t = 'tmp';
- my @a = split /\n^##\n/m, do { local $/; <DATA> };
- say shift @a, "\n##";
- for (@a) {
- my ( $a, $b ) = split /\n(?=^\w{3,})/m, $_, 2;
- say $a;
- my ( @b, @c ) = split /\n/, $b;
- for ( 0 .. $#b ) {
- my ( $x, $y, $z ) = @c ? @c : split( /\s+/, $b[$_] );
- say $b[$_];
- if ( $_ < $#b ) {
- @c = split /\s+/, $b[ $_ + 1 ];
- say join ' ', $t, $z + 1, $c[1] - 1 unless $z == $c[1] - 1;
- }
- }
- say '##';
- }
- __DATA__
- ID start end
- ##
- s 12 65
- st 12 36
- st1 12 16
- st2 20 25
- st3 30 36
- ##
- sr 38 65
- sr1 38 45
- sr2 46 56
- sr3 61 65
- ##
- s 100 200
- st 100 150
- st1 100 120
- st2 125 140
- st3 145 150
复制代码- ID start end
- ##
- s 12 65
- st 12 36
- st1 12 16
- tmp 17 19
- st2 20 25
- tmp 26 29
- st3 30 36
- ##
- sr 38 65
- sr1 38 45
- sr2 46 56
- tmp 57 60
- sr3 61 65
- ##
- s 100 200
- st 100 150
- st1 100 120
- tmp 121 124
- st2 125 140
- tmp 141 144
- st3 145 150
- ##
复制代码 |
|