Saya telah menggunakan sed
beberapa waktu tetapi ini adalah kekhasan yang saya alami , yang tidak bisa saya selesaikan.
Biarkan saya menjelaskan masalah saya dengan kasus yang sebenarnya.
Adegan # 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
Pada perintah pertama, saya menyalurkan printf
output ke xclip
sehingga disalin ke clipboard. Sekarang, printf
tidak seperti echo
tidak memasukkan baris baru di akhir secara default. Jadi, jika saya menempelkan konten ini ke terminal, ls
perintah yang disalin tidak berjalan secara otomatis.
Di baris kedua, ada baris baru di bagian akhir, jadi menempelkan konten clipboard juga menghasilkan jalannya perintah di clipboard.
Ini tidak diinginkan untukku. Jadi, saya ingin menghapus baris baru menggunakan sed
, tetapi gagal, seperti yang dijelaskan dalam adegan di bawah ini.
Adegan # 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
Konten di clipboard masih berisi baris baru. Ketika saya menempelkannya ke terminal, perintah secara otomatis berjalan.
Saya juga mencoba menghapus karakter carriage return \r
. Tapi nada. Sepertinya saya kehilangan sesuatu yang sangat penting / mendasar di sini.
generate-text | xclip
kasus ini. Jawaban ini hanya menghilangkan baris baru terakhir.