GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich beim Lesen einer Datei mit „weniger“ oder „mehr“ den Inhalt in Farbe erhalten?

Versuchen Sie Folgendes:

less -R

ab man less :

-r oder --raw-control-chars

Bewirkt, dass "rohe" Steuerzeichen angezeigt werden. (...)

-R oder --RAW-CONTROL-CHARS

Wie -r , aber nur ANSI-"Farb"-Escape-Sequenzen werden in "roher" Form ausgegeben. (...)


(Aktualisierung 2020)

Der schnellere Weg wäre die Verwendung von less -R Ref. https://superuser.com/a/117842/34893

Sie können die Kraft der Pygmentisierung mit weniger nutzen - automatisch! (Keine Notwendigkeit, von Hand zu pfeifen.)

Installieren Sie pygments mit Ihrem Paketmanager oder pip (möglicherweise python-pygments genannt ) oder hier herunterladen http://pygments.org/download/.

Schreiben Sie eine Datei ~/.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

In Ihrem .bashrc

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

Außerdem müssen Sie ~/.lessfilter eingeben ausführbar durch Ausführen

chmod u+x ~/.lessfilter

Auf Debian getestet.

Du hast die Idee. Dies kann natürlich weiter verbessert werden, indem mehr Erweiterungen akzeptiert oder der Kram für andere Interpreter als Bash analysiert werden. Siehe dazu einige der anderen Antworten.

Die Idee stammt von einem alten Blogbeitrag der Macher von Pygments, aber der ursprüngliche Beitrag existiert nicht mehr.


Ich habe die Antwort in einem anderen Beitrag erhalten:Less and Grep:Getting farbige Ergebnisse, wenn eine Pipe von grep nach less verwendet wird

Wenn Sie einfach grep --color ausführen es impliziert grep --color=auto Dadurch wird erkannt, ob es sich bei der Ausgabe um ein Terminal handelt, und wenn dies der Fall ist, werden Farben aktiviert. Wenn es jedoch eine Pipe erkennt, deaktiviert es die Farbgebung. Der folgende Befehl:

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

Aktiviert immer die Farbgebung und setzt die automatische Erkennung außer Kraft, und Sie erhalten die Farbhervorhebung ohne.

Warnung:Geben Sie nicht --color=always ein als Alias ​​macht es manchmal Dinge kaputt. Deshalb gibt es einen --color=auto Option.


Linux
  1. Wie finde ich die älteste Datei in einem Verzeichnisbaum?

  2. Wie kann ich der ssh-Konfigurationsdatei eine IPv6-Adresse mit einer Bereichs-ID hinzufügen?

  3. Wie können dmesg-Inhalte in eine Datei eingeloggt werden?

  4. Wie ersetze ich den Inhalt einer bestimmten Spalte durch awk?

  5. Wie kann ich eine Binärdatei aus einer .py-Datei erhalten?

So verwenden Sie den Befehl less in Linux mit Beispielen

So erhalten Sie die Größe von tar.gz in (MB) Datei in Python

Wie erhalte ich das absolute Verzeichnis einer Datei in Bash?

Wie man nur die Anzahl der Zeilen einer Datei erhält

Wie bekomme ich eine Datei mit dem richtigen Namen, wenn ich umgeleitet werde?

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?