Macのターミナルで,pbcopy,pbpasteすると,クリップボードにコピー,ペーストできる.
こうやって,名前に23を含むGitのブランチをチェックアウトするとか.
% git branch | grep 23 | pbcopy % git checkout `pbpaste`
この例でもそうだけど,何かをgrepしてコピーするのに使われることが多い(と思った)ので,grepした結果をコピーする関数を作った.
function pb() { if [ -t 0 ]; then pbpaste else if [ $# -gt 0 ]; then a=$(cat - | grep $*) else a=$(cat -) fi echo $a echo -n $a | pbcopy fi }
パイプで入力が来ないとき,pbpasteになる.
パイプで入力が来るが,引数がないとき,pbcopyになる.
パイプで入力が来て,引数があるとき,引数でgrepした結果をpbcopyする.
さっきのがこうなって,ちょっと短いし,コピーされた内容が表示されるので,何がコピーされたか確認できる.
% git branch | pb 23 emacs23 % git checkout `pb`
追記
ちょっと更新して,最後の改行はコピーしないようにした.改行もコピーされてると,ターミナルに貼り付けた瞬間にコマンドが実行されて,ちょっと怖い.