Tôi đã sử dụng được sedmộ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 để xclipnó được sao chép vào bảng tạm. Bây giờ, printfkhông giống như echokhô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, lslệ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 | xcliptrường hợp. Câu trả lời này chỉ loại bỏ dòng mới nhất.