Почему сортировка GNU может зависать в течение 10 часов с этим конкретным файлом? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь объединить и дедуплировать несколько разных версий одного и того же вида простого текстового файла с помощью сортировки gnu, которая поставляется с Ubuntu 18 lts. Я почти каждый день использовал сортировку без проблем, сортируя файлы размером более 1 ГБ.

Однако у меня есть следующая команда, которая все еще не может быть выполнена, когда я оставляю ее в течение 10 часов в фоновом режиме (околоВсего 600 МБ данных):

find backups -type f -iname 'file0.txt' -o -iname 'file1.txt' -o -iname 'file2.txt' -o -iname 'file3.txt' -exec sort -u {} + > "combined.txt"

Часть сортировки - это то, что вызывает проблемы, остальная часть команды не имеет отношения к моему тестированию. Я поместил все файлы в один файл размером ~ 600 МБ, и когда я пытаюсь отсортировать этот файл -u, он все равно зависает даже при установке буфера памяти на 80% с объемом свободной памяти около 6 ГБ. У меня также нет проблем с дисковым пространством.

Пока он еще работает, я перетащил несортированный 3-гигабайтный текстовый файл и успешно отсортировал -u его. Я делаю это на виртуальной машине, если это может иметь значение.

что может вызвать такое поведение?

1 Ответ

0 голосов
/ 09 ноября 2019

Установка LC_ALL = C перед выполнением команды сортировки или экспорта LC_ALL = C под шаблоном в начале файла сценария решила это. Не уверен, почему именно тот текст, который был добавлен в последнее обновление текстовых файлов, привел к тому, что команда застряла навсегда без LC_ALL = C.

...