お元気そうで残念です

仕事とか趣味のメモを残します

ちょっと使いやすくしたcutコマンド作成中

この記事はGo2 Advent Calendar 2018 - Qiitaの5日目の穴埋めエントリーです。

ApacheやHAproxyのログからgnuplotのグラフを生成するために、cutやawk, sedなどを組み合わせて使っているのですが、
そもそもcutでフィールド指定した順番どおりに出力できればawkを挟む必要がなく
その分処理時間減らせるのにどうして出来ないのか!という個人的なニーズから作成中です。

github.com

使い方はこんな感じ。

% who | ucut -d " " -f 2,1,4,2 
console joniyjoniy Nov console 
ttys010 joniyjoniy Dec ttys010 

awkを使うとこうなります。やっぱり、-fで指定できたほうが直感的で分かりやすいですよね?(多分)

% who | cut -d " " -f 1,2,4 | awk '{print $2" "$1" "$3" "$2}'  
console joniyjoniy Nov console
ttys010 joniyjoniy Dec ttys010

フィールド指定の部分以外はcutと同じようにしようと思っていますが、現在は-d区切りで標準入力から受け付ける処理しか出来てません。

以上とても簡単な紹介ですが、現在Go言語を使って開発しているCLIツールucutを紹介しました。
冒頭で処理時間についてのニーズを上げたのに、ベンチマーク取れていませんが、出来上がってきたらベンチマーク取ってこの記事を更新する予定です。