Мы делаем проект миграции данных, переносящийся с Informix на Oracle. Теперь возникло требование сравнить данные между таблицами Informix и oracle. Таким образом, таблица1 из Informix будет перенесена в таблицу 1 в Oracle.
Теперь данные переносятся с Table1
в Informix на Table1
в Oracle. Я беру данные из обеих таблиц в 2 плоских файла. Я хочу просто посмотреть, есть ли разница в данных в 2 файлах.Я хотел бы иметь разницу между 2 файлами. Хотите найти конкретно, в каком столбце разница произошла с использованием Unix Scripting
File1
сказал, что 1 миллион записей с 300 столбцами и File2
говорят 1 миллион записей с 300 столбцами. File1
и File2
- файлы с разделителями каналов. Таким образом, разница может быть в любом месте файла. Почти целая строка может совпадать, но разница может быть в одном/двух столбцах. Поэтому я хотел бы узнать различия, соблюдая все перечисленные выше. Разностный вывод должен содержать список row1 in file1 is not matching with row1 in file2 at column 3
и значение столбцов из обоих файлов. Все такие отличия от обоих файлов должны быть перечислены на консоли с понятным форматом непрофессионала.
Я хочу просто объяснить это примером, чтобы сделать его более понятным.
Мой первый файл, если он выглядит, как показано ниже:
col1|col2|col3|col4|col5|col6 1234|ramyakrishna|4567|[email protected]|228802|worse 1235|Chandan|4567|[email protected]|228862|worse 1236|Kacitha|4567|[email protected]|228872|worse 1238|Shajin|4567|[email protected]|228873|worse
Мой второй файл выглядит следующим образом:
col1|col2|col3|col4|col5|col6 1234|ramyakrishna|4567|[email protected]|228802|good 1235|Chandan|4567|[email protected]|228789|worse 1236|Kacitha|4567|[email protected]|228872|worse
Так что, когда я сравнить оба файла. Мы видим, что существует разница в col4
и col6
в row2
. Поэтому я хочу что-то вроде этого:
1234|ramyakrishna|4567|[email protected]|228802|good :[email protected]:COL6-EXPECTED-worse
Значит, в следующей строке из второго файла следует напечатать. Затем ожидаемые значения должны быть напечатаны.
Я знаю, что файлы необходимо сортировать перед использованием любого скрипта.
Для сценария FGE в я получаю, как показано ниже вывод:
Я получаю, как показано ниже вывод
$perl diff.perl Line 1: different value for column 38 (was g, expected w) Line 1: different value for column 40 (was o, expected r) Line 1: different value for column 41 (was d, expected s) Line 1: different value for column 42 (was ., expected e) Line 1: different value for column 43 (was c, expected .) Line 1: different value for column 44 (was o, expected c) Line 1: different value for column 45 (was m, expected o) Line 1: different value for column 46 (was |, expected m)
Я хочу, чтобы все сравнение столбца. Файлы |
файлы с разделителями.
Да, я пробовал использовать коммит, но в итоге я просто перечислял строки, которые имеют отличия. Но не смог перечислить, где ровно 2 строки отличаются. Спасибо за ответ. – Chkusi
Я пробовал использовать команду comm. Здесь, как я могу получить записи, уникальные только для file1 и уникальные для file2. Меня не интересуют записи, общие для обоих файлов. Поэтому, когда у нас есть записи, уникальные друг для друга, то, возможно, мы сможем найти какую-то работу, чтобы проверить точную разницу. – Chkusi