何かを入力するたびにxclip
最後に新しい行が出ないようにする方法はありますか?
回避策として使用していますが、echo -n $(CMD_TO_COPY) | xclip
何かをコピーしたいときはいつでもこれらすべてを入力する必要があることは少し迷惑です。
答え1
マニュアルページによると、必要な操作を正確に実行する()オプションがxclip
あります。-rmlastnl
-r
echo hello | xclip -i -r
答え2
xclip
バージョン0.13以降、末尾の改行文字を削除するオプションがありますが、Larsksがすでに指摘したように、いつでも必要な処理を実行する関数を定義できます。たとえば、次のようになります。
clipboard() { printf %s "$(cat -- "$@")" | xclip -sel c; }
clipboard() { printf %s "$(cat -- "$@")" | xsel -b; }
(ここでコマンドは削除を置き換えます。みんな末尾の改行文字と一部のシェルではbash
どちらもNUL文字)。
または、次のように末尾の改行文字を削除しますxclip -r
。
clipboard() { cat -- "$@" | perl -pe 's/\n$// if eof' | xclip -sel c; }
次のように使用されます。
cmd | clipboard
clipboard <<< "$var"
clipboard some-file and-some-other
いずれにせよ、使用echo
または引用符なしでコマンドを置き換えるあなたのように方法が間違っています。echo -n $(CMD_TO_COPY)