Можете ли вы сформулировать свой вопрос немного яснее?Можете ли вы привести краткий пример ввода и пример вывода, которые вы ожидаете?Немного неясно, что именно вы спрашиваете.
Редактировать: Учитывая, что вы хотите, это должно сработать:
get_a > inputfile
get_b >> inputfile
perl -lne '$data{$F[0]} = $F[1] unless exists $data{$F[0]} }{ for $key (keys %data) { print "$key $data{$key}\n"}' inputfile > outputfile
}{
потому что звонит perl -n
заставляет программу (заданную -e
) быть обернутой в неявный блок while (<STDIN>) { ... }
.}
закрывает while
, а {
открывает новый кодовый блок, который запускается до неявного }
Вызов perl с -l
вызывает автоматическое разбиение входа на @F
, аналогично тому, как в awk есть $1
, $2
и т. д. Затем вы добавляете пару ключ / значение в %data
, если ключ уже не существует.