GNU/Linux >> Tutoriels Linux >  >> Linux

Lors de la lecture d'un fichier avec "moins" ou "plus", comment puis-je obtenir le contenu en couleurs ?

Essayez ce qui suit :

less -R

de man less :

-r ou --raw-control-chars

Provoque l'affichage de caractères de contrôle "bruts". (...)

-R ou --RAW-CONTROL-CHARS

Comme -r , mais seules les séquences d'échappement "couleur" ANSI sont sorties sous forme "brute". (...)


(mise à jour 2020)

Le moyen le plus rapide serait d'utiliser less -R réf. https://superuser.com/a/117842/34893

Vous pouvez utiliser la puissance de pygmentize avec moins - automatiquement ! (Pas besoin de piper à la main.)

Installer pygments avec votre gestionnaire de paquets ou pip (éventuellement appelé python-pygments ) ou obtenez-le ici http://pygments.org/download/.

Ecrire un fichier ~/.lessfilter

#!/bin/sh
case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;

    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1";;

    *)
        if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
            pygmentize -f 256 -l sh "$1"
        else
            exit 1
        fi
esac

exit 0

Dans votre .bashrc ajouter

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

Aussi, vous devez faire ~/.lessfilter exécutable en exécutant

chmod u+x ~/.lessfilter

Testé sur Debian.

Vous avez eu l'idée. Cela peut bien sûr être encore amélioré, en acceptant plus d'extensions ou en analysant le shebang pour d'autres interprètes que bash. Voir quelques-unes des autres réponses pour cela.

L'idée est venue d'un ancien article de blog des créateurs de Pygments, mais l'article d'origine n'existe plus.


J'ai eu la réponse dans un autre article :Less and Grep :obtenir des résultats colorés lors de l'utilisation d'un tube de grep à less

Lorsque vous exécutez simplement grep --color cela implique grep --color=auto qui détecte si la sortie est un terminal et, si c'est le cas, active les couleurs. Cependant, lorsqu'il détecte un tuyau, il désactive la coloration. La commande suivante :

grep --color=always "search string" * | less -R

Activera toujours la coloration et remplacera la détection automatique, et vous obtiendrez la mise en surbrillance des couleurs en moins.

Attention :ne mettez pas --color=always en tant qu'alias, ça casse parfois les choses. C'est pourquoi il y a un --color=auto option.


Linux
  1. Comment puis-je trouver le fichier le plus ancien dans une arborescence de répertoires

  2. Comment puis-je ajouter une adresse IPv6 avec un ID de portée au fichier de configuration ssh ?

  3. Comment le contenu dmesg peut-il être connecté à un fichier ?

  4. Comment puis-je obtenir un binaire à partir d'un fichier .py

  5. Comment puis-je ouvrir un fichier avec des numéros de ligne affichés à partir de la ligne de commande dans 'vi' ?

Comment utiliser la commande less sous Linux avec des exemples

Comment un script bash peut-il connaître le répertoire dans lequel il est installé lorsqu'il est sourcé avec . opérateur?

Comment obtenir un fichier avec un nom correct lors de la redirection ?

Comment puis-je obtenir la longueur d'un fichier vidéo à partir de la console ?

Comment puis-je obtenir la quantité de mémoire disponible de manière portable entre les distributions ?

Comment obtenir la taille physique d'un fichier sous Linux ?