Примушуйте менше відображати файл як текст


14

Іноді менш помилково розпізнає файл як двійковий і намагається показати шістнадцятковий на LHS (як правило, ті, що мають не буквено-цифрові символи, але все ще містять символи для друку ASCII). Як змусити його розпізнати його як текст?


Шукаєте іншу відповідь. У мене є файл журналу, який cat somefileвідображається як ASCII, але less somefileговорить, що він може бути бінарним і відображається як такий echo $LESSOPENпорожній і less -Lне допомагає.
— Натан Лонг

2
@NathanLong Це, мабуть, було б прийнятним для відкриття нового питання, оскільки рішення тут не вирішує вашу проблему (просто зауважте це). Однак, коли ви говорите "може бути двійковим і відображається як такий", ви говорите про те, що він відображає шістнадцяткове представлення даних, або ви бачите необроблені бінарні дані (як усі дивні символи та подібні)?
— Патрік

Що таке ЛГС? Він для мене новий.
— dfc

Відповіді:


19

Я думаю, у вас є (або у вашому розпорядженні) LESSOPENфільтр less. Спробуйте сказати наступне, lessщоб не використовувати фільтр:

less -L my_binary_file

Для подальшого вивчення також спробуйте echo $LESSOPEN. Він, ймовірно, містить назву сценарію оболонки ( /usr/bin/lesspipeдля мене), який ви можете прочитати, щоб побачити, які фільтри існують. Спробуйте man lessтакож прочитати розділ Введення попереднього процесора .


4

Для випадку, коли це LESSOPENне проблема. lessМожна спробувати наступні варіанти:

  1. -fабо --force: Крім того, що дозволяє відкривати нерегулярні файли, воно також "пригнічує попереджувальне повідомлення, коли відкривається бінарний файл".
  2. -rабо --raw-control-chars: "Викликає відображення необроблених символів керування. За замовчуванням відображаються контрольні символи, використовуючи позначення карети; наприклад, контрольний знак A (вісімковий 001) відображається як ^A. Попередження: коли використовується -rпараметр, менше не можна відслідковувати фактичного вигляду екрана (оскільки це залежить від того, як екран реагує на кожен тип керуючих символів). Таким чином, можуть виникати різні проблеми з відображенням, такі як довгі рядки розбиті в неправильному місці.
  3. -Rабо --RAW-CONTROL-CHARS: Слабша форма -rвище, лише "кольорові" послідовності введення ANSI виводяться у "сировинній" формі. "На відміну від -r, зовнішній вигляд екрана підтримується правильно у більшості випадків." Це корисно, якщо ви, наприклад, переглядаєте файл журналу, який використовує послідовності контролю кольорів ANSI.

Можна експериментувати, натискаючи клавіші, -а потім rне повторюючись less. Ви можете додати ці параметри до LESSзмінної середовища, щоб зробити налаштування постійним (наприклад, змінивши файл профілю оболонки); якщо ваш термінал може відображати кольори, я настійно рекомендую додати його -Rв LESSналаштування. Ви повинні переконатися, що ваш термінал налаштований на те саме кодування символів, що і ваш текстовий файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.