perl - assning the first column of the file to hash key and the rest to hash value -
i have file follows:
23 line number 23 2 line number 2 87 line number 87 28 line number 28 4 line number 4 83 line number 83
i need take first column hash keys , sec hash value. should sort file using hash keys
this easy: split
line @ whitespace 2 pieces. first part $key
, rest $value
.
we sort keys
of %hash
alphabetically, , print out data.
#!/usr/bin/perl utilize strict; utilize warnings; %hash; while (<>) { chomp; # remove newline ($key, $value) = split ' ', $_, 2; $hash{$key} = $value; } # or shorter: # %hash = map {chomp; split ' ', $_, 2} <>; @sorted_keys = sort keys %hash; $key (@sorted_keys) { print "$key $hash{$key}\n"; } # or shorter: # print "$_ $hash{$_}\n" sort keys %hash;
the input can provided via stdin or file named in command line argument.
output input provided:
2 line number 2 23 line number 23 28 line number 28 4 line number 4 83 line number 83 87 line number 87
if want numerical sorting, alter sort keys
sort {$a <=> $b} keys
.
perl
No comments:
Post a Comment