it-swarm.com.de

Zeige Sonderzeichen in Unix, während Sie den Befehl 'less' verwenden

Ich möchte wissen, wie Sie Sonderzeichen anzeigen, während Sie den Befehl 'less' verwenden. Zum Beispiel möchte ich die nicht druckbaren Zeichen mit einer speziellen Notation sehen. Im "vi" -Editor verwende ich beispielsweise "set list on", um die Zeilenabschlusszeichen zu sehen, die durch das Dollarzeichen $ dargestellt werden. In ähnlicher Weise möchte ich dies mit dem Befehl "Weniger" tun.

Ich habe Unix weniger manuell verwiesen, aber ohne Erfolg.

64
Kingsly

less wird in seiner Umgebung nach einer Variable mit dem Namen LESS suchen

Sie können LESS in einem Ihrer ~/.profile einstellen (.bash_rc usw.) und jedes Mal, wenn Sie less von der Befehlszeile aus ausführen, wird LESS gefunden.

Versuchen Sie, dies hinzuzufügen

 export LESS="-CQaix4"

Dies ist das Setup, das ich verwende. Es gibt einige eingebettete Verhaltensweisen, die Sie verwirren können, also ...

Was dies alles bedeutet, erfahren Sie in der Hilfefunktion in less. Tippen Sie einfach auf die H-Taste und die Nase, oder führen Sie weniger --help aus.

bearbeiten

Ich habe mir die Hilfe angesehen und festgestellt, dass es auch eine Option -r gibt 

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

Ich bin damit einverstanden, dass die Katze am genauesten Ihren angegebenen Bedürfnissen entspricht.

 cat -vet file | less

Fügt am Ende jeder Zeile '$' ein und konvertiert tab char in visual '^ 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

Ich hoffe das hilft.

61
shellter

Sie können das mit cat tun und damit die Ausgabe auf weniger reduzieren:

cat -e yourFile | less

Dieser Auszug aus man cat erklärt, was -e bedeutet:

   -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

Für less verwenden Sie -u, um Wagenrücklauf (^M) und Rückbereiche (^H) anzuzeigen, oder -U, um die vorherigen und Registerkarten (^I) anzuzeigen. Beispiel:

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

(END)

Ohne -U wäre die Ausgabe:

fobar   baz

(END)

Siehe man less für eine genauere Beschreibung der Funktionen.

10
James Brown

Im gleichen Sinne wie 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

Alternativ oder gleichzeitig können Sie an tr weiterleiten, um beliebige Zeichen für die Anzeige durch die gewünschten Zeichen zu ersetzen, bevor Sie an einen Pager wie less weiterleiten.

0
flow2k

Alle Sonderzeichen, die nicht gedruckt werden können, werden in weniger als ^ dargestellt. Der Zeilenvorschub ist jedoch tatsächlich druckbar (erstellen Sie einfach eine neue Zeile) und werden daher nicht als speziell betrachtet. Daher haben Sie Probleme beim Ersetzen. Wenn Sie nur die Zeilenenden sehen möchten, ist dies möglicherweise der einfachste Weg

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