Forza meno per visualizzare un file come testo


14

A volte meno erroneamente riconosce il file come binario e cerca di mostrare hexdump su LHS (di solito quelli con caratteri non alfanumerici ma contenenti ancora caratteri ASCII stampabili). Come forzarlo a riconoscerlo come testo?


Alla ricerca di un'altra risposta. Ho un file di registro che cat somefilemostra come ASCII, ma less somefiledice che può essere binario e viene visualizzato come tale. echo $LESSOPENè vuoto e less -Lnon aiuta.
Nathan Long,

2
@NathanLong Questo sarebbe probabilmente accettabile per aprire una nuova domanda poiché la soluzione qui non risolve il tuo problema (assicurati solo di notare che). Tuttavia, quando dici "può essere binario e visualizzato come tale", stai dicendo che mostra una rappresentazione esadecimale dei dati o vedi i dati binari grezzi (come tutti i simboli strani e simili)?
Patrick,

Che cos'è LHS? È nuovo per me.
dfc,

Risposte:


19

Penso che tu abbia (o la tua distribuzione abbia) un LESSOPENfiltro impostato per less. Prova quanto segue per dire lessdi non usare il filtro:

less -L my_binary_file

Per ulteriori esplorazioni, prova anche echo $LESSOPEN. Probabilmente contiene il nome di uno script di shell ( /usr/bin/lesspipeper me), che puoi leggere per vedere che tipo di filtri ci sono. Prova anche a man lessleggere la sezione Preprocessore di input .


4

Per il caso di LESSOPENnon essere il problema. È lesspossibile provare le seguenti opzioni:

  1. -foppure --force: Oltre a consentire l'apertura di file non regolari, "sopprime anche il messaggio di avviso quando viene aperto un file binario".
  2. -roppure --raw-control-chars: "Fa sì che vengano visualizzati i caratteri di controllo non elaborati. L'impostazione predefinita è di visualizzare i caratteri di controllo usando la notazione caret; ad esempio, un controllo-A (ottale 001) viene visualizzato come ^A. Avviso: quando -rviene utilizzata l' opzione, less non può tenere traccia dell'aspetto reale dello schermo (poiché ciò dipende dal modo in cui lo schermo risponde a ciascun tipo di carattere di controllo). Pertanto, possono verificarsi vari problemi di visualizzazione, come le lunghe righe che vengono divise nel posto sbagliato.
  3. -Roppure --RAW-CONTROL-CHARS: forma più debole di cui -rsopra, solo le sequenze di escape "color" ANSI vengono emesse in forma "raw". "A differenza di -r, l'aspetto dello schermo viene mantenuto correttamente nella maggior parte dei casi." Ciò è utile se ad esempio si sta visualizzando un file di registro che utilizza sequenze di controllo del colore ANSI.

Puoi sperimentare premendo i tasti -seguiti da rsenza eseguire nuovamente less. È possibile aggiungere queste opzioni alla LESSvariabile d'ambiente per rendere permanente l'impostazione (ad es. Modificando il file del profilo della shell); se il tuo terminale può mostrare i colori ti consiglio vivamente di aggiungere le -Rtue LESSimpostazioni. È necessario assicurarsi che il terminale sia configurato per utilizzare la stessa codifica dei caratteri del file di testo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.