cut,paste,joinの練習

あんまり使ったことが無いコマンド郡、cut,paste,joinを試します。

まずテキストを用意

% cat ff.tsv
01      ふぁいあ        ほのお
02      ぶりざど        こおり
03      さんだー        かみなり
% cat dq.csv
01,ぎら,ほのお
02,ひゃど,こおり
03,ばぎ,かぜ

一個はタブ区切り、もう一個はコロン区切りでっす。

cutしてみる

cutでフィールドを取り出してみます。

% cut -f 2 ff.tsv
ふぁいあ
ぶりざど
さんだー

-f 2でフィールドでフィールドを取り出せる。cutのデフォルトはタブ区切り。

csvを取り出してみます。

% cut -d ',' -f 2,3 dq.csv
ぎら,ほのお
ひゃど,こおり
ばぎ,かぜ

-dでデリミタ指定、-f 2,3とやると、複数のフィールドが取り出せる。

joinしてみる

zshのプロセス置換を使って、共通フィールドで結合してみます。

% join ff.tsv <(tr ',' '\t' < dq.csv)
01 ふぁいあ ほのお ぎら ほのお
02 ぶりざど こおり ひゃど こおり
03 さんだー かみなり ばぎ かぜ

おぉぉぉ。

pasteする

pasteは普通につなげるだけ。

% paste ff.tsv <(tr ',' '\t' < dq.csv)
01      ふぁいあ        ほのお  01      ぎら    ほのお
02      ぶりざど        こおり  02      ひゃど  こおり
03      さんだー        かみなり        03      ばぎ    かぜ

cutと組み合わせるとセクシー。

まとめ

  • cut,paste,joinは相当使える。活用してなかったことに反省。
  • zshのプロセス置換は便利杉。