Команда сортировки Linux не включает нижние 9 и 14 строки в двух текстовых файлах

Да, используйте его следующим образом.

touch a{1,3,11,22,23,123,1234} {1,11,123}

если бы у вас были обычные последовательности, такие как 0, 10, 20, 30, это можно было бы легко сделать с помощью следующей команды.

touch a{0..30..10}
1
16.11.2019, 23:51
2 ответа

Откуда вы знаете, что нижние строки отсутствуют, а самые верхние сохранены? То, что файл короче, не означает, что последние строки отвалились, просто некоторые куда-то потерялись.

Показать полный wc всех 4 файлов,не только туалет -л. Мы можем найти все (или большинство из )символов. Возможно, некоторые «ложные» строки соединились из-за нескольких CR (и не должны происходить, но и все это )тоже не должно происходить.

Куда идут рабочие файлы сортировки? Может быть, это /tmp, а может быть, он почти заполнен.

Запустите сортировку и затем отобразите статус.

Я могу опубликовать awk, который точно скажет вам, какие строки были потеряны, что может помочь объяснить, что происходит. (Diff не будет работать, если файлы отсортированы по-разному --вы получите огромный отчет.)

Возможно, некоторые строки слишком длинные. Я не могу вспомнить предел (, если он есть ). Я также могу опубликовать awk, чтобы показать максимальную длину строки.

Возникает следующий вопрос. Какая ОС, какая версия, какая машина. Например, раньше SunOS была ненадежной из-за длинных строк.

0
27.01.2020, 23:57

Всем спасибо. Я нашел источник проблемы. Я попытался передать вывод команды сортировки в wc -l, и количество строк было указано правильно для обоих CSV-файлов. Итак, после небольшого проб и ошибок я понял, что проблема связана с используемым мной скриптом Python. Я заменил вызовы os.system для сортировки файлов с помощью команды sort в конце скрипта на отдельный скрипт оболочки bash, и теперь все работает нормально. Я использую Python 3.6.7 и Bash Shell в комплекте с подсистемой Ubuntu Linux как часть Windows 10.

0
27.01.2020, 23:57

Теги

Похожие вопросы