join
join
ファイルでRDBのjoinを行うツール
使い方
ファイルの中身は結合する項目でsortされている必要がある
$ cat hoge.txt aaaa,1 bbbb,2 cccc,3 $ cat fuga.txt bbbb,xxx cccc,yyy dddd,zzz $ join -t "," hoge.txt fuga.txt bbbb,2,xxx cccc,3,yyy
- t: デリミタ、デフォルトは空白とタブ
- j: joinに使うフィールドの番号を指定、デフォルトは1(先頭の項目)
- j1: 前のファイルのjoinに使うフィールド番号を指定
- j2: 後のファイルのjoinに使うフィールド番号を指定
- a: 指定した方は全部表示(outer joinのイメージ)
- o: 表示するカラムを指定
- e: 表示するカラムの値がない場合の指定
- v: 指定したファイルの一致しない行を表示
集合演算
$ cat hoge.txt 1 2 3 4 $ cat fuga.txt 3 4 5 6
積集合
$ join hoge.txt fuga.txt 3 4
和集合
$ join -a 1 -a 2 hoge.txt fuga.txt 1 2 3 4 5 6
差集合
$ join -v 1 hoge.txt fuga.txt 1 2 $ join -v 2 hoge.txt fuga.txt 5 6
対称差集合
$ join -v 1 -v 2 hoge.txt fuga.txt 1 2 5 6
join.txt · 最終更新: 2020/01/28 07:47 by nullpon