У меня есть два очень длинных файла с разделителями запятыми. Каждая строка имеет около 101 столбца в обоих файлах, и каждый файл имеет 41705 записей.

Перед сортировкой файла A и файла B:


01B60D9F4DEB83,FY 
01B60D9F4DEB83,AU
01B60D9F4DEB83,BB
01B60D9F4DEB83,BB
01B60D9F4DEB83,JA

После сортировки файла A:-


01B60D9F4DEB83,BB
01B60D9F4DEB83,FY
01B60D9F4DEB83,BB
01B60D9F4DEB83,AU
01B60D9F4DEB83,JA

После сортировки файла B:-


01B60D9F4DEB83,FY 
01B60D9F4DEB83,BB
01B60D9F4DEB83,BB
01B60D9F4DEB83,AU
01B60D9F4DEB83,JA

Команда, используемая на Solaris и Linux:-

sort -t"," -k1,1 fileA.csv > FileA_Sort.csv
sort -t"," -k1,1 fileB.csv > FileB_Sort.csv

Кто-нибудь может указать мне, почему мы получаем различия в одинаковых значениях для одной и той же стартовой последовательности? Что мне не хватает?

1 ответ1

1

вы сортируете по первому столбцу. Когда многие записи имеют одинаковое значение в первом столбце, они могут быть в произвольном порядке. Для больших файлов алгоритм зависит от доступной памяти (http://vkundeti.blogspot.fr/2008/03/tech-algorithmic-details-of-unix-sort.html).

Если вы хотите сохранить порядок, вы должны добавить опцию '-s'.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .