TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

Windowsでクリップボードをsortしてuniqする

Windowsコマンドラインでテキストの加工を行うとき、クリップボードと連携できると便利である。

コマンドの結果をクリップボードにコピーするには、clip.exeコマンドにパイプで渡せばよい。

dir /b | clip

逆に、クリップボードのテキストを加工したい場合もある。
今までclip.exeでは入力側のパイプにはできないので、ファイルに保存してから加工していたが、PowerShellならできることがわかった。
普段コマンドプロンプトを使っていて、PowerShellはほとんど使っていなかったけど、sortやuniqもPowerShellならできることがわかった。
MINGWを使っているのでunixコマンド相当がなくて困ることはなかったけど、クリップボード連携を考えるとPowerShellで作業するのもよさそうだ。

PowerShellクリップボードをsortしてuniqする
Get-Clipboard | Sort-Object | Get-Unique | Set-Clipboard

これでクリップボード内のテキストに対して、sortとuniqが行える。

コマンドが長くて覚えづらいが、Tab補完が効く場合がある。sortは、sortと入力してTabを押すと「Sort-Object」に変換される。
uniqは、Tabを押すと、MINGWの「uniq.exe」に補完されてしまった。

help uniq

とすると、部分一致でコマンドを探してくれる。
忘れたときは、helpコマンドで探すとよい。

helpを使えるようにするには、管理者としてPowerShellを起動して、「Update-Help」を実行しておく必要がある。