Portál AbcLinuxu, 8. května 2025 18:00
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.