Farbcode in hübschen gedruckten Spalten

8

Ich habe eine tabulatorgetrennte Textdatei, die ich an column an "pretty print" eine Tabelle sende.

Originaldatei:

%Vor%

Mit column -s$'\t' -t <original file> bekomme ich

%Vor%

wie gewünscht. Jetzt möchte ich den Spalten Farben hinzufügen. Ich habe versucht, die Escape-Codes um jedes durch Tabulatoren getrennte Feld in der Originaldatei hinzuzufügen. column druckt erfolgreich in Farbe, aber die Spalten sind nicht mehr ausgerichtet. Stattdessen werden die TAB-Trennzeichen nur wörtlich ausgegeben.

Die Frage ist: Wie kann ich die Spalten ausrichten, aber auch mit eindeutigen Farben?

Ich habe über zwei Wege nachgedacht, dies zu erreichen:

  1. Passen Sie die Parameter column an, damit die Ausrichtung mit den Farbcodes
  2. funktioniert
  3. Leiten Sie die Ausgabe der Spalte in eine andere Datei um und führen Sie eine Suche + Ersetzung in den ersten beiden Leerzeichen durch (die ersten beiden Spalten sind garantiert nicht enthalten Leerzeichen; die dritte Spalte höchstwahrscheinlich) enthält Leerzeichen, aber keine TAB-Zeichen)

Das Problem ist, ich bin mir nicht sicher, wie ich das tun soll ...

Hier ist eine Referenz, die ich an column :

übergebe

Beachten Sie, dass die Felder tatsächlich durch TAB-Zeichen getrennt sind. Ich habe dies mit od bestätigt.

bearbeiten:

Es scheint kein Problem mit der Einfärbung zu geben. Ich habe bereits die Datei oben mit den Farbcodes arbeiten. Das Problem ist column wird nicht ausgerichtet, sobald ich es mit Escape-Codes senden. Ich überlege, die Felder ohne Farbcodes an column weiterzuleiten, dann die genaue Anzahl der Leerzeichen column output zwischen den einzelnen Feldern zu kopieren und in einem hübschen Druckschema zu verwenden.

    
Evan W 22.11.2013, 18:07
quelle

3 Antworten

3

Ich habe eine Bash-Version der Spalte geschrieben (ähnlich der von util-linux), die mit Farbcodes arbeitet:

%Vor%

Beispielverwendung:

%Vor%

Ausgabebeispiel:

    
NORMAN GEIST 04.08.2016 08:33
quelle
2

Ich würde awk für die Einfärbung verwenden ( sed kann ebenfalls verwendet werden):

%Vor%

und leiten Sie es an column für die Ausrichtung:

%Vor%

Ausgabe:

    
hek2mgl 22.11.2013 18:33
quelle
2

Eine Lösung, die printf verwendet, um den Ausgang ebenfalls zu formatieren:

%Vor%

    
Gilles Quenot 22.11.2013 19:05
quelle