Forcer moins pour afficher un fichier sous forme de texte

14

Parfois, moins à tort reconnaître le fichier comme binaire et essaie d'afficher hexdump sur LHS (généralement ceux avec des caractères non alphanumériques mais contenant toujours des caractères ASCII imprimables). Comment le forcer à le reconnaître comme texte?

Maciej Piechotka
la source
Vous cherchez une autre réponse. J'ai un fichier journal qui cat somefiles'affiche en ASCII, mais less somefiledit peut être binaire et s'affiche en tant que tel. echo $LESSOPENest vide et less -Ln'aide pas.
Nathan Long
2
@NathanLong Ce serait probablement acceptable d'ouvrir une nouvelle question car la solution ici ne résout pas votre problème (assurez-vous de le noter). Cependant, lorsque vous dites "peut être binaire et s'affiche en tant que tel", dites-vous qu'il affiche une représentation hexadécimale des données ou voyez-vous les données binaires brutes (comme tous les symboles étranges et autres)?
Patrick
Qu'est-ce que le LHS? C'est nouveau pour moi.
dfc
1
@dfc côté gauche .
Maciej Piechotka

Réponses:

19

Je pense que vous avez (ou votre distribution a) un LESSOPENfiltre configuré less. Essayez ce qui suit pour dire lessde ne pas utiliser le filtre:

less -L my_binary_file

Pour une exploration plus approfondie, essayez également echo $LESSOPEN. Il contient probablement le nom d'un script shell ( /usr/bin/lesspipepour moi), que vous pouvez lire pour voir quels types de filtres existent. Essayez également man lesset lisez la section Input Preprocessor .

Jander
la source
4

Pour le cas de LESSOPENne pas être le problème. Les lessoptions suivantes peuvent être essayées:

  1. -fou --force: En plus de permettre l'ouverture de fichiers non réguliers, il "supprime également le message d'avertissement lorsqu'un fichier binaire est ouvert".
  2. -rou --raw-control-chars: "Provoque l'affichage des caractères de contrôle bruts. La valeur par défaut est d'afficher les caractères de contrôle en utilisant la notation caret; par exemple, un contrôle-A (octal 001) est affiché comme ^A. Avertissement: lorsque l' -roption est utilisée, less ne peut pas suivre de l'apparence réelle de l'écran (car cela dépend de la façon dont l'écran réagit à chaque type de caractère de contrôle). Ainsi, divers problèmes d'affichage peuvent survenir, tels que de longues lignes divisées au mauvais endroit.
  3. -Rou --RAW-CONTROL-CHARS: forme plus faible de ce qui -rprécède, seules les séquences d'échappement "couleur" ANSI sont sorties sous forme "brute". "Contrairement à -r, l'apparence de l'écran est conservée correctement dans la plupart des cas." Ceci est utile si vous visualisez par exemple un fichier journal qui utilise des séquences de contrôle des couleurs ANSI.

Vous pouvez expérimenter en appuyant sur les touches -puis rsans relancer less. Vous pouvez ajouter ces options à LESSla variable d'environnement pour rendre le paramètre permanent (par exemple en modifiant votre fichier de profil shell); si votre terminal peut afficher des couleurs, je recommande fortement d'ajouter -Rdans votre LESScadre. Vous devez vous assurer que votre terminal est configuré pour utiliser le même codage de caractères que votre fichier texte.

FooF
la source