私はsed
かなり長い間使用してきましたが、これは私が出くわした気まぐれで、解決できません。
実際のケースで私の問題を説明させてください。
シーン#1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
最初のコマンドでは、printf
出力をパイプxclip
してクリップボードにコピーします。現在、printf
とは異なりecho
、デフォルトでは末尾に新しい行を挿入しません。そのため、このコンテンツをターミナルに貼り付けls
ても、コピーされたコマンドは自動的に実行されません。
2番目では、最後に新しい行があるので、クリップボードの内容を貼り付けると、クリップボードでコマンドが実行されます。
これは私には望ましくありません。そのため、を使用して改行を削除したかったのですsed
が、以下のシーンで説明されているように失敗しました。
シーン#2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
クリップボードのコンテンツにはまだ改行が含まれています。端末に貼り付けると、コマンドが自動的に実行されます。
改行文字も削除してみました\r
。なだ。ここに非常に重要な/基本的な何かが欠けているようです。
generate-text | xclip
場合このケースでは望ましくありません。この回答は最後の改行のみを削除します。