Portál AbcLinuxu, 6. prosince 2025 01:05
3 1 4 2Soubor s daty takto:
1 1.2.3.4 prvni 2 2.3.4.5 druhy 3 3.4.5.6 treti 4 4.5.6.7 ctvrtyvýsledek má vypadat takto:
3 3.4.5.6 treti 1 1.2.3.4 prvni 4 4.5.6.7 ctvrty 2 2.3.4.5 druhySoubory nemusí mít stejný počet řádků, řádky bez priorit přijdou nakonec, přebytečné priority se zahodí. Řádku je cca 2500, výrazný růst nebude. Sloupce odděleny mezerou.
use 5.010;
use warnings;
use strict;
use File::Slurp qw( :std );
#use Data::Dumper;
my @razeni = read_file( 'radici_soubor.txt', chomp => 1 );
my %radici_hash;
@radici_hash{@razeni} = ( 1 .. @razeni );
#say Dumper( \%radici_hash );
my @data_na_serazeni = read_file('soubor_na_serazeni.txt');
my @serazena_data =
map { $_->[1] }
sort { $a->[0] <=> $b->[0] }
map { [ $radici_hash{ ( split m/\s+/, $_, 2 )[0] } // @razeni + 1, $_ ] }
@data_na_serazeni;
print @serazena_data;
1;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.