Ich benutze es schon seit sedeiniger 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 printfAusgabe an weiter, xclipdamit sie in die Zwischenablage kopiert wird. Im printfGegensatz dazu echowird jetzt standardmäßig keine neue Zeile am Ende eingefügt. Wenn ich diesen Inhalt in das Terminal lseinfü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 | xclipFall häufig nicht erwünscht sind . Diese Antwort entfernt nur den letzten Zeilenumbruch.