標準入力の特定のカラムを楽に取りたいときに使う関数

こんにちは!!1

awk、してますか???

はい、というわけで僕は普段OpenStackを触っているときによく下記のようなコマンドを打ちます。

$ openstack server list | grep example |awk '{print $2}' | xargs -o -n1 openstack server show

この中の、 awk '{print $2}' これで2カラム目のサーバのID列を抽出するのですが、やりたいことに対してタイプ数が多すぎる。

一時はtrとか覚えようと思ったが毎回オプションを忘れてしまう。

そんな悩みがあるのは僕だけじゃないはずです。そして、僕が考え出した神がかった関数がこちらです。


function t() {
    cat - | awk "{ print \$$1 }"
}

これをzshrcなりに定義しておくと、

command | t 1

とか打つだけで、1カラム目が取得できます。awk使うとき、大体スペース区切りだしこれでいいやろ的なアプローチですが、よくやる作業ならこのタイプ数、馬鹿にできないので、ぜひおすすめです!

カテゴリー: tech