Некоторые типы файлов не отображаются в предварительном просмотре Ranger.

Вопрос или проблема

У меня есть куча csv файлов, которые являются просто текстовыми csv файлами.

$ file ./*
file1.csv: ASCII текст, с очень длинными строками
file2.csv: Текст CSV

Я даже сгенерировал file2.csv из file1.csv, используя cut. Однако файлы кажутся различными типами.

При предварительном просмотре их в ranger, file1.csv отображается как ожидалось. Но когда я пытаюсь просмотреть file2.csv, это просто говорит

---------------Классификация Типа Файла----------------------------
Текст CSV

Как я могу это исправить?

У меня Ranger версии 1.9.3 и файлы конфигурации по умолчанию (scope.sh, rc.conf, rifle.conf). Это происходит даже, когда я запускаю ranger как ranger -c

Примечание: Есть идея, почему file2.csv отображается как “Текст CSV”, а не как ASCII текстовый файл, даже если я сгенерировал его из ASCII текстового файла, используя простые комманды bash, такие как sed и cut

Тип — это просто то, что утилита file предполагает, исходя из данных эвристик.

Честно говоря, здесь нечего исправлять: ваши значения, разделенные запятыми, остаются таковыми, независимо от того, распознает это file или нет.

“Очень длинные строки” могут указывать на то, что вы не используете правильные символы разрыва строк последовательно в файле (например, некоторые разрывы строк MS-DOS, некоторые разрывы строк UNIX). Но это проблема с тем, как вы сгенерировали данные, а не то, что можно исправить без детального анализа.

Ответ или решение

Теория

Обозреватель файлов Ranger является популярным текстовым приложением, которое обеспечивает быстрый и удобный доступ к файловой системе в Unix-подобных операционных системах. Одной из его особенностей является возможность предварительного просмотра содержимого файлов, что крайне полезно для быстрой навигации и анализа данных. Однако, механизм предварительного просмотра зависит от ряда факторов, включая конфигурацию и утилиту file, которая используется для определения типа файла на основе его содержимого.

Утилита file осуществляет распознавание типов файлов, используя определённые эвристические методы, анализируя содержимое файла, его структурную организацию и признаки, указывающие на принадлежность к тому или иному типу. Поэтому различие в отображаемых типах файлов, несмотря на одинаковое исходное содержимое, может быть связано с сильным влиянием способов создания и сохранения файлов.

Пример

В вашем случае у вас есть два CSV файла: file1.csv и file2.csv. Первый отображается как "ASCII text, with very long lines", в то время как второй — как "CSV Text". При этом разница в их отображении, вероятнее всего, вызвана изменениями, внесёнными при обработке этих файлов, как, например, различия в форматах переноса строк.

Применение

Теперь перейдём к решению проблемы, связанной с вашим сценарием.

  1. Проверка форматов строк:

    • Различие в форматах переноса строк может вызывать проблемы с отображением. Убедитесь, что оба файла используют одинаковые символы переноса, например, LF (Line Feed) для Unix или CRLF (Carriage Return Line Feed) для Windows. Вы можете использовать утилиты, такие как dos2unix или unix2dos, чтобы убедиться в совместимости форматов.
  2. Опции предварительного просмотра в Ranger:

    • В Ranger за предварительный просмотр отвечает скрипт scope.sh, который прописан в конфигурации. Возможно, потребуется внести изменения в этот скрипт для более успешного распознавания CSV файлов.
    • Проверьте конфигурационные файлы scope.sh и rifle.conf на наличие правил, касающихся CSV файлов. Убедитесь, что они не содержат ограничений на просмотр определённых типов файлов.
  3. Унификация типа файла:

    • Используйте утилиты, такие как sed или tr, для преобразования форматирования второго файла в целевой формат ASCII Text (например, убрав скрытые символы или изменив кодировку).
  4. Использование других утилит или кастомизация:

    • Если стандартная конфигурация Ranger не даёт нужного результата, создайте или используйте существующие дополнительные скрипты, которые могут обрабатывать предварительный просмотр CSV более эффективно.
  5. Диагностика файла file:

    • Исследуйте содержимое файла, чтобы понять, почему file может рассматривать их по-разному. Возможно, причина в неявных изменениях, таких как разная кодировка (например, UTF-8 с BOM и без BOM).

Заключение

Основная задача — стандартизировать формат обоих файлов для корректного распознавания и предпросмотра. Это значит, что ваш процесс должен быть адаптирован так, чтобы Ranger мог эффективно обрабатывать данные, которые вы обрабатываете. Для улучшения работы Ranger важно не только корректно настроить конфигурации, но и понимать особенности самих файлов и инструменты, которые используются для их обработки и анализа. В конечном итоге, постоянное улучшение знаний о специфике систем и их механизмах обработки данных поможет максимально эффективно использовать старые и новые возможности ваших инструментов.

Оцените материал
Добавить комментарий

Капча загружается...