Warum gibt tldr | xclip Escape-Codes aus, die wie Zeitstempel aussehen, und wie kann man diese entfernen?

Warum gibt tldr | xclip Escape-Codes aus, die wie Zeitstempel aussehen, und wie kann man diese entfernen?

Problem

Ich möchte die Ausgabe von tldr in die Zwischenablage kopieren und dann in den Texteditor einfügen.

Ich führe aus:tldr pwd | xclip -sel clip

Wenn ich aus der Zwischenablage einfüge, erhalte ich:

pwd
[0mPrint name of current/working directory.More information: https://www.gnu.org/software/coreutils/pwd.

 - [23;22;24;25;32mPrint the current directory:
[23;22;24;25;33m   pwd
[0m
 - [23;22;24;25;32mPrint the current directory, and resolve all symlinks (i.e. show the "physical" path):
[23;22;24;25;33m   pwd -P
[0m[0m

Ich möchte die Zeitstempel loswerden und auch wissen, warum das passiert.

Überwachung

  • tldr pwd(ohne Übergabe an xclip) zeigt keine Zeitstempel an
  • man pwd | xclip -sel clipenthält beim Einfügen keine Zeitstempel
  • Dies passiert also nur, wenn ich tldr an xclip übergebe
  • Die Zeitstempel sehen aus wie Escape-Codes

Umfeld

  • Statischer Hostname: Debian
  • Symbolname: Computer-Desktop
  • Gehäuse: Desktop
  • Betriebssystem: Debian GNU/Linux 10 (Buster)
  • Kernel: Linux 4.19.0-17-amd64
  • Architektur: x86-64

Antwort1

Das sind keine Zeitstempel. Das sind Farbcodes.

Entsprechend derv0.91 Änderungsprotokoll, tldrhat im Juli 2021 eine Funktion zum Deaktivieren von Farben integriert, entweder durch Festlegen einer NO_COLORUmgebungsvariable oder mithilfe einer neuen --no-colorBefehlszeilenoption.

Leider tldrist v0.91 vonvielneuer als die aktuelle Version in Debian (0.6.4) … also deinstallieren Sie entweder das Debian-Paket und kompilieren/installieren Sie es selbst (*) oder senden Sie einen Fehlerbericht mit der Bitte, die neue Version zu verpacken. Oder beides.

Das ist die langfristige Lösung. Kurzfristig sedist es wahrscheinlich am besten, die Farbcodes aus der Ausgabe zu entfernen (wie in der Antwort von @GMaster) oder etwas Ähnliches.

(*) Normalerweise würde ich nicht empfehlen, von einer gepackten Version eines Programms auf eine selbst kompilierte Version umzusteigen (weil dies wahrscheinlich zu Kompatibilitätsproblemen oder Problemen bei zukünftigen Upgrades führt), aber fest codierte Farbcodes, die nicht deaktiviert werden können, sind eine Abscheulichkeit für die Benutzeroberfläche.

Antwort2

Dies sind von generierte Farbcodes tldr. Leider tldrgibt es keine Option, die Farben auszuschalten. Sie können die tldrAusgabe jedoch durchgeben sedund die Farbcodes entfernen. Versuchen Sie Folgendes:

tldr pwd | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | xclip -sel clip

Alternativ basierend auf dem genannten Paket jpa:

# install colorized-logs package (for ubuntu)
sudo apt install colorized-logs

tldr pwd | ansi2txt | xclip -sel clip

verwandte Informationen