Forçar menos a exibir um arquivo como texto

14

Às vezes, menos incorretamente reconhece o arquivo como binário e tenta mostrar o hexdump no LHS (geralmente aqueles com caracteres não alfanuméricos, mas ainda contendo caracteres ASCII imprimíveis). Como forçá-lo a reconhecê-lo como texto?

Maciej Piechotka
fonte
Procurando outra resposta. Eu tenho um arquivo de log que cat somefileaparece como ASCII, mas less somefilediz que pode ser binário e exibido como tal. echo $LESSOPENestá vazio e less -Lnão ajuda.
Nathan Long
2
@ NathanLong Isso provavelmente seria aceitável para abrir uma nova pergunta, já que a solução aqui não resolve o seu problema (apenas observe o fato). No entanto, quando você diz "pode ​​ser binário e é exibido como tal", você está dizendo que ele exibe uma representação hexadecimal dos dados ou vê os dados binários brutos (como todos os símbolos estranhos e outros)?
224 Patrick Patrick
O que é o LHS? É novo para mim.
dfc 17/05
1
@dfc lado esquerdo .
Maciej Piechotka

Respostas:

19

Eu acho que você tem (ou sua distribuição tem) um LESSOPENfiltro configurado para less. Tente o seguinte para dizer lesspara não usar o filtro:

less -L my_binary_file

Para mais exploração, tente também echo $LESSOPEN. Provavelmente contém o nome de um script de shell ( /usr/bin/lesspipepara mim), que você pode ler para ver que tipo de filtros existem. Tente também man lesse leia a seção Pré-processador de entrada .

Jander
fonte
4

Para o caso de LESSOPENnão ser o problema. As seguintes lessopções podem ser tentadas:

  1. -fou --force: Além de permitir a abertura de arquivos não regulares, "também suprime a mensagem de aviso quando um arquivo binário é aberto".
  2. -rou --raw-control-chars: "Faz com que caracteres de controle brutos sejam exibidos. O padrão é exibir caracteres de controle usando a notação de sinal de intercalação; por exemplo, um controle A (octal 001) é exibido como ^A. Aviso: quando a -ropção é usada, menos não é possível acompanhar da aparência real da tela (uma vez que isso depende de como a tela responde a cada tipo de caractere de controle) Portanto, vários problemas de exibição podem resultar, como longas filas sendo divididas no lugar errado.
  3. -Rou --RAW-CONTROL-CHARS: Na forma mais fraca -racima, apenas as seqüências de escape "cor" ANSI são exibidas na forma "bruta". "Ao contrário de -r, a aparência da tela é mantida corretamente na maioria dos casos." Isso é útil se você estiver, por exemplo, visualizando um arquivo de log que usa sequências de controle de cores ANSI.

Você pode experimentar pressionando as teclas -seguidas rsem executar novamente less. Você pode adicionar essas opções à LESSvariável de ambiente para tornar a configuração permanente (por exemplo, modificando seu arquivo de perfil do shell); se o seu terminal mostrar cores, recomendo adicionar -Rna sua LESSconfiguração. Você deve se certificar de que o seu terminal está configurado para usar a mesma codificação de caracteres do seu arquivo de texto.

FooF
fonte