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.
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.
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
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.
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.
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