標準入力の特定のカラムを楽に取りたいときに使う関数
こんにちは!!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使うとき、大体スペース区切りだしこれでいいやろ的なアプローチですが、よくやる作業ならこのタイプ数、馬鹿にできないので、ぜひおすすめです!