Grep данные из нескольких файлов, а затем подать в журнал
Я хочу собрать данные из нескольких файлов, а затем объединить данные в один журнал. Мои входные файлы как таковые:
Входной файл1 (200 МГц)
Cell_a freq_100 50
Cell_a freq_200 6.8
Cell_b freq_100 70
Входной файл2 (100 МГц)
Cell_a freq_100 100
Cell_a freq_200 10.5
Cell_b freq_100 60
Это мой ожидаемый результат
<cell> <freq> <value_frm__file2> <value_frm_file1> <etc>
Пример ожидаемого результата:-
Cell_a freq_100 100 50
Cell_a freq_200 10.5 6.8
Cell_b freq_100 60 70
Я могу получить значение только один раз за раз. Может кто-нибудь помочь в решении этого? Огромное спасибо!
1 ответ
Решение
Попробуй это:
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(switch say);
my %record;
while (<>) {
chomp;
my ($cell, $freq, $num) = split " ";
push @{$record{$cell}->{$freq}}, $num;
}
while (my ($cell, $freqs) = each %record) {
while (my ($freq, $nums) = each %$freqs) {
say "$cell $freq ", join(" ", @$nums);
}
}
Запустите это так:
./t.pl input1.txt input2.txt