Ich benutze es schon seit sed
einiger Zeit, aber hier ist eine Eigenart, mit der ich herumgekommen bin und die ich nicht lösen kann.
Lassen Sie mich mein Problem mit dem tatsächlichen Fall erklären.
Szene 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
Im ersten Befehl leite ich die printf
Ausgabe an weiter, xclip
damit sie in die Zwischenablage kopiert wird. Im printf
Gegensatz dazu echo
wird jetzt standardmäßig keine neue Zeile am Ende eingefügt. Wenn ich diesen Inhalt in das Terminal ls
einfüge, wird der kopierte Befehl nicht automatisch ausgeführt.
In der zweiten Zeile befindet sich am Ende eine neue Zeile. Wenn Sie also den Inhalt der Zwischenablage einfügen, wird der Befehl auch in der Zwischenablage ausgeführt.
Das ist für mich unerwünscht. Also wollte ich die neue Zeile mit entfernen sed
, aber es schlug fehl, wie in der folgenden Szene erläutert.
Szene 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
Der Inhalt in der Zwischenablage enthält weiterhin Zeilenumbrüche. Wenn ich es in das Terminal einfüge, wird der Befehl automatisch ausgeführt.
Ich habe auch versucht, das Wagenrücklaufzeichen zu entfernen \r
. Aber nada. Es scheint, dass mir hier etwas sehr Entscheidendes / Grundlegendes fehlt.
generate-text | xclip
Fall häufig nicht erwünscht sind . Diese Antwort entfernt nur den letzten Zeilenumbruch.