Wymuś mniej, aby wyświetlić plik jako tekst


14

Czasami mniej błędnie rozpoznaje plik jako binarny i próbuje pokazać zrzut heksadecymalny na LHS (zwykle te ze znakami niealfanumerycznymi, ale wciąż zawierające drukowalne znaki ASCII). Jak zmusić go do rozpoznania go jako tekstu?


Szukasz innej odpowiedzi. Mam plik dziennika, który cat somefilepokazuje się jako ASCII, ale less somefilemówi , że może być binarny i wyświetla się jako taki. echo $LESSOPENjest pusty i less -Lnie pomaga.
Nathan Long

2
@NathanLong To byłoby prawdopodobnie do przyjęcia, aby otworzyć nowe pytanie, ponieważ rozwiązanie tutaj nie rozwiązuje problemu (pamiętaj tylko o tym). Jednak gdy mówisz „może być binarny i wyświetla jako taki”, czy mówisz, że wyświetla on szesnastkową reprezentację danych, czy widzisz surowe dane binarne (jako wszystkie dziwne symbole i tym podobne)?
Patrick

Co to jest LHS? To jest dla mnie nowe.
dfc

Odpowiedzi:


19

Myślę, że masz (lub twoją dystrybucję) LESSOPENskonfigurowany filtr less. Spróbuj wykonać następujące czynności, lessaby nie używać filtra:

less -L my_binary_file

W celu dalszej eksploracji spróbuj także echo $LESSOPEN. Prawdopodobnie zawiera nazwę skryptu powłoki ( /usr/bin/lesspipedla mnie), którą możesz przeczytać, aby zobaczyć, jakie są filtry. Spróbuj także man lessi przeczytaj sekcję Preprocesor wejściowy .


4

W przypadku, gdy LESSOPENnie jest to problemem. lessMożna wypróbować następujące opcje:

  1. -flub --force: Oprócz zezwalania na otwieranie plików nieregularnych, „pomija także komunikat ostrzegawczy, gdy plik binarny jest otwierany”.
  2. -rlub --raw-control-chars: „Powoduje wyświetlenie nieprzetworzonych znaków kontrolnych. Domyślnie znaki sterujące są wyświetlane za pomocą notacji daszka; na przykład formant A (ósemkowy 001) jest wyświetlany jako ^A. Ostrzeżenie: gdy -rużywana jest opcja, less nie może śledzić rzeczywistego wyglądu ekranu (ponieważ zależy to od tego, jak ekran reaguje na każdy typ znaku kontrolnego). W ten sposób mogą wystąpić różne problemy z wyświetlaniem, takie jak długie linie w niewłaściwym miejscu.
  3. -Rlub --RAW-CONTROL-CHARS: słabsza forma -rpowyżej, tylko sekwencje specjalne „kolorowe” ANSI są generowane w postaci „surowej”. „W przeciwieństwie do opcji -r, w większości przypadków wygląd ekranu jest prawidłowo zachowany”. Jest to przydatne, jeśli na przykład przeglądasz plik dziennika wykorzystujący sekwencje kontroli kolorów ANSI.

Możesz eksperymentować, naciskając klawisze, -a następnie rbez ponownego uruchamiania less. Możesz dodać te opcje do LESSzmiennej środowiskowej, aby ustawić to na stałe (np. Modyfikując plik profilu powłoki); jeśli twój terminal może wyświetlać kolory, bardzo polecam dodanie -Rw swoim LESSustawieniu. Należy upewnić się, że terminal jest skonfigurowany do korzystania z tego samego kodowania znaków, co plik tekstowy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.