ユーザ用ツール

サイト用ツール


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