Tôi đã sử dụng được sed
một thời gian nhưng đây là một vấn đề tôi không thể giải quyết được.
Hãy để tôi giải thích vấn đề của tôi với trường hợp thực tế.
Cảnh 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
Trong lệnh đầu tiên, tôi dẫn printf
đầu ra để xclip
nó được sao chép vào bảng tạm. Bây giờ, printf
không giống như echo
không chèn một dòng mới vào cuối theo mặc định. Vì vậy, nếu tôi dán nội dung này vào terminal, ls
lệnh được sao chép sẽ không tự động chạy.
Trong phần thứ hai, có một dòng mới ở cuối, do đó, dán nội dung clipboard cũng dẫn đến việc chạy lệnh trong bảng tạm.
Điều này là không mong muốn đối với tôi. Vì vậy, tôi muốn xóa dòng mới bằng cách sử dụng sed
, nhưng nó đã thất bại, như được giải thích trong cảnh bên dưới.
Cảnh # 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
Nội dung trong clipboard vẫn chứa dòng mới. Khi tôi dán nó vào terminal, lệnh sẽ tự động chạy.
Tôi cũng đã cố gắng loại bỏ nhân vật trở về \r
. Nhưng nada. Có vẻ như tôi đang thiếu một cái gì đó rất quan trọng / cơ bản ở đây.
generate-text | xclip
trường hợp. Câu trả lời này chỉ loại bỏ dòng mới nhất.