Apps

pbcopy & pbpaste: コマンドラインからクリップボードを操作する

pbcopy & pbpaste: コマンドラインからクリップボードを操作する

pbcopyとpbpasteはMac OS Xのクリップボードへのコマンドラインインターフェースです。

コピー&ペーストは、ほぼすべてのコンピュータユーザーにとって必須の機能です。コマンドラインを頻繁に使用する場合は、Mac OS Xのクリップボードをターミナルプロンプトから直接操作する方法を知りたいと思うでしょう。そのためにMacコマンドのpbcopyとpbpasteが存在します。ご想像の通り、この2つのコマンドはまさにその名の通り、コマンドラインからコピー、pbpasteでペーストを行います。これらは非常に強力な機能で、bash、tcsh、zshなど、お好みのシェルプロンプトを使う際にきっと役立つでしょう。

pbcopy と pbpaste を使用してクリップボード データを操作する方法について簡単に説明します。いくつかの例を挙げて、ターミナル コマンドの出力をクリップボードへの入力としてリダイレクトする方法や、もちろん、pbpaste を使用してクリップボードの内容をコマンド ラインに送出する方法も示します。

Macのコマンドラインからpbcopyとpbpasteを使用する

pbcopy : 標準入力を受け取り、それをクリップボードバッファに格納します。

pbcopyの使い方は簡単です。基本的に、何かを直接コピーすると、クリップボードバッファにコピーされます。コピーされたファイルは、pbpaste、またはFinderの標準ペーストコマンド(command-v)でアクセスできます。使い方は以下のとおりです。

$ pbcopy < file.txt

これで完了です。file.txt の内容がクリップボードに保存され、どこにでも貼り付けられるようになりました。しかし、pbcopy はこれよりもはるかに強力で、コマンドやプログラムの出力もコピー対象に指定できます。以下はコマンド 'ps' を使った例です。

$ ps aux | pbcopy

これは ps コマンドの結果をクリップボードにパイプします。これもまた、どこにでも貼り付けることができます。結果を少し絞り込みたい場合は、 throw を使って絞り込みもできます。grep コマンドを使った例を以下に示します。

$ ps aux | grep root | pbcopy

これは「ps aux」コマンドの結果をパイプしますが、「root」のみをフィルターし、その結果だけをクリップボードにコピーします。クールでしょう?

pbpaste : クリップボードバッファからデータを取得し、標準出力に書き込みます。

pbpasteも同様に使いやすく、クリップボードバッファに保存されているものをすべて取得して出力します。最もシンプルな方法は、次のように入力するだけです。

$ pbpaste

pbcopyコマンドまたはFinderのコピーコマンド(command-c)でコピーしたデータが表示されます。この出力は、コマンドラインからファイルに出力して後でアクセスすることもできます。以下の簡単なコマンドを使用します。

$ pbpaste > pastetest.txt

貼り付ける内容をフィルタリングするのは非常に便利です。コマンド構造は先ほどpbcopyで見たものとよく似ています。ここでは「rcp」でフィルタリングしますが、もちろん任意の条件でフィルタリングできます。

$ pbpaste | grep rcp

貼り付けられるのは、クリップボード内のデータ内で「rcp」の検索に一致するものだけです。

OS Xのターミナルpbcopyとpbpasteには他にもたくさんの用途がありますが、これで使い方の大まかな概要が理解できたと思います。また、ご自身の生産性向上に活用するためのアイデアも得られたのではないでしょうか。スクリーンショットは、コマンドラインからFinderアプリ(この場合はテキストエディット)にコピー&ペーストしても、書式が崩れないことを示しているだけです。

はい、ターミナルでpbcopyコマンドとpbpasteコマンドを使用し、MacOSのGUIからMac標準のコピー&ペーストキーボードショートカット(Command+CとCommand+V)を使って操作することも可能です。逆も同様で、GUIからコピーしたものをコマンドラインでpbpasteコマンドを使って貼り付けることもできます。

pbcopyとpbpasteのより強力な使い方を学び、Mac OS Xのペーストボードをコマンドラインから変更することにご興味のある方は、コマンドのマニュアルページを確認することをお勧めします。これらのマニュアルページは基本的に互換性があり、コマンドの両側面をカバーしています。マニュアルページへは「man pbcopy」または「man pbpaste」で簡単にアクセスできます。そこでは、コマンドの使用方法の詳細だけでなく、コマンドの使用方法、エンコーディングの調整、リッチテキストの詳細の削除または維持など、様々なオプションを確認できます。