Używam od seddł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 printfprzesyłam potokiem dane wyjściowe, aby zostały xclipskopiowane do schowka. Teraz printfinaczej niż echodomyślnie nie wstawia nowej linii. Tak więc, jeśli wkleję tę zawartość do terminala, lsskopiowane 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 | xclipprzypadku niepożądanych . Ta odpowiedź usuwa tylko ostatnią nową linię.