web-dev-qa-db-fra.com

Afficher les caractères spéciaux sous Unix en utilisant la commande 'less'

J'aimerais savoir comment afficher des caractères spéciaux avec la commande "moins". Par exemple, je veux voir les caractères non imprimables avec une notation spéciale. Par exemple, dans l'éditeur "vi", j'utilise "set list on" pour afficher les caractères de fin de ligne représentés par le caractère dollar "$". De même, je voudrais faire cela en utilisant la commande "moins".

Je me suis référé à Unix moins manuel, mais en vain.

64
Kingsly

less regardera dans son environnement pour voir s’il existe une variable nommée LESS

Vous pouvez définir LESS dans l’un de vos ~/.profile (.bash_rc, etc, etc.), puis chaque fois que vous exécuterez less à partir de la ligne de commande, il trouvera le message LESS.

Essayez d'ajouter ceci

 export LESS="-CQaix4"

C’est la configuration que j’utilise, il y a des comportements intégrés qui peuvent vous dérouter, alors ...

Vous pouvez découvrir ce que tout cela signifie grâce à la fonction d’aide de less, il vous suffit de taper sur la touche "h" et de vous déplacer dans le nez, ou de lancer moins - help.

modifier

J'ai regardé l'aide, et j'ai remarqué qu'il y avait aussi une option -r 

-r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                Output "raw" control characters.

Je conviens que ce chat est peut-être la correspondance la plus exacte possible avec vos besoins.

 cat -vet file | less

Ajoutera '$' à la fin de chaque ligne et convertira le caractère de tabulation en visuel '^ I'. 

 cat --help
   (edited)
    -e                       equivalent to -vE
    -E, --show-ends          display $ at end of each line
    -t                       equivalent to -vT
    -T, --show-tabs          display TAB characters as ^I
    -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB

J'espère que ça aide.

61
shellter

Vous pouvez le faire avec cat et que le résultat soit moins puissant:

cat -e yourFile | less

Cet extrait de man cat explique ce que -e signifie:

   -e     equivalent to -vE

   -E, --show-ends
          display $ at end of each line

   -v, --show-nonprinting
          use ^ and M- notation, except for LFD and TAB
50
Costi Ciudatu

Pour less, utilisez -u pour afficher les retours à la ligne (^M) et les backspaces (^H), ou -U pour afficher les onglets précédent et (^I):

$ awk 'BEGIN{print "foo\bbar\tbaz\r\n"}' | less -U 
foo^Hbar^Ibaz^M

(END)

Sans le commutateur -U, la sortie serait:

fobar   baz

(END)

Voir man less pour une description plus précise des fonctionnalités.

10
James Brown

Dans le même esprit que https://stackoverflow.com/a/6943976/7154924

cat -A

-A, --show-all
       equivalent to -vET
-v, --show-nonprinting
       use ^ and M- notation, except for LFD and TAB
-E, --show-ends
       display $ at end of each line
-T, --show-tabs
       display TAB characters as ^I

Alternativement ou simultanément, vous pouvez diriger vers tr pour remplacer les caractères souhaités par des caractères quelconques, avant de passer à un pageur tel que less si vous le souhaitez.

0
flow2k

Tous les caractères spéciaux non imprimables sont affichés en utilisant la notation ^ en moins. Cependant, le saut de ligne est réellement imprimable (créez simplement une nouvelle ligne), donc pas considéré comme spécial, vous aurez donc des problèmes à le remplacer Si vous voulez juste voir les fins de lignes, le moyen le plus simple peut-être

sed -e 's/$/$/' | less
0
thiton