Это - больше интересного приложения coreutils, я подозреваю, что это не очень эффективно с большим входом, поскольку это вызывает соединение для каждой строки во входе.
touch outfile
while read; do
join -a1 -a2 outfile <(echo $REPLY) > tmp
mv tmp outfile
done < infile
Для улучшения это - эффективность, сохраняя outfile
и tmp
к электронному диску мог бы помочь.
Или без временных файлов:
out=""
while read; do
out=$(join -a1 -a2 <(echo -n "$out") <(echo -n "$REPLY"))
done < infile
echo "$out"
Я разрешил это путем начальной загрузки Fedora 19 Живой CD с отключенным UEFI (т.е. только Начальная загрузка Прежней версии включила), и переустанавливающий F19, который создал конфигурацию MBR. У меня нет UEFI, но у меня действительно есть загрузочная установка.