中間ファイルを使用せずにクリップボードのコンテンツをフィルタリングする


11

クリップボードにあるテキストを変更し、いくつかの文字列を含むその特定の行を削除してから、さらに操作するために出力を取得しようとしています(必要な場合にのみ、クリップボードに対処することを好みます)。私はこのようなことを考えていました:

cat > swapfile
##Paste all
grep -v string swapfile
## Read all
rm swapfile

私はファイルの作成を防ぎ、シェルの標準入力/出力自体ですべてを実行しようとします。パイプ、リダイレクト、入力からのgrep / sedを使用してみましたが、望ましくないパターンなしで入力を印刷する結果にはなりませんでした。

回答:


13
xsel -o -p  | grep -v string

上記は、xselユーティリティを使用してクリップボードからキャプチャし、現在のプライマリセレクションをstdoutに送信します。その後、必要に応じてgrep(またはsedまたはawk)を使用して出力を変更できます。

1次選択が必要ない場合は、「-p」を「2次選択」の「-s」に、または「-c」をクリップボード選択に置き換えます。

debianまたは同様のディストリビューションでは、xselをで入手できますapt-get install xsel

上記は出力をstdoutに送信します。出力を直接選択範囲にキャプチャしたい場合は、以下を使用します。

xsel -o -p  | grep -v string | xsel -i -s

オプション「-i」は、xdinにstdinから入力を取得し、それを選択に保存するように指示します。「-s」は、2次選択を再度指定します。


私はいつもこれを使います。うまく機能するはずです。コピーが「大きすぎない」ことを確認してください。そうしないと、予期しない出力が発生する可能性があります。これは、通常のコピーアンドペーストでは問題ありません。
coteyr 2014年

macosのネイティブアプリケーションではありません
lobi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.