Używam od sed
dłuższego czasu, ale oto dziwactwo, z którym się spotkałem, którego nie jestem w stanie rozwiązać.
Pozwól mi wyjaśnić mój problem z faktyczną sprawą.
Scena 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
W pierwszym poleceniu printf
przesyłam potokiem dane wyjściowe, aby zostały xclip
skopiowane do schowka. Teraz printf
inaczej niż echo
domyślnie nie wstawia nowej linii. Tak więc, jeśli wkleję tę zawartość do terminala, ls
skopiowane polecenie nie uruchomi się automatycznie.
W drugim jest nowy wiersz na końcu, więc wklejenie zawartości schowka powoduje również uruchomienie polecenia w schowku.
To jest dla mnie niepożądane. Tak więc chciałem usunąć nowy wiersz za pomocą sed
, ale nie udało się, jak wyjaśniono w poniższej scenie.
Scena # 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
Treść w schowku nadal zawiera nową linię. Kiedy wkleję go do terminala, polecenie uruchamia się automatycznie.
Próbowałem także usunąć znak powrotu karetki \r
. Ale nada. Wygląda na to, że brakuje mi czegoś bardzo ważnego / podstawowego.
generate-text | xclip
przypadku niepożądanych . Ta odpowiedź usuwa tylko ostatnią nową linię.