У меня есть два очень больших файла в Unix, каждый из которых содержит 5 столбцов, но миллионы строк.Сравнение двух файлов по полю в Unix
Ex:
Файл 1: а | Защита | ГКИ | IJK | ЛМНЫ .... ...
File2: а | Защита | ГКИ | IJK | 123 . .. ...
Моя задача - сравнить два больших файла и узнать разные столбцы и строки. Например, выход будет: Column-no Row-no File1-word File2-word.
Ex:
5 1 ЛМН 123
файлы действительно большой. Я слышал, что awk - это самый быстрый способ разбора файлов в Unix. Поскольку выход не может ждать слишком долго.
Можно ли это сделать с помощью awk?
Да, это можно сделать с помощью 'awk' - хотя чтение из двух файлов одновременно затруднено, но сохранение всего ввода из одного файла, а затем использование этого при чтении второго является обычным режимом работы для скриптов' awk'. Что вы пробовали, и где у вас возникли проблемы? Если вы можете использовать Perl или Python, вам будет легче избежать разрыва всего одного файла в памяти. –
Даже если я использую Perl, мне по крайней мере придется клонировать один файл в памяти? И затем используйте эту структуру данных для сравнения второго файла –
No; используя Perl, вы должны прочитать одну строку из файла 1 и одну строку из файла 2, а затем сравнить эти строки и распечатать различия; промыть и повторить. –