ぐぐてもぐぐてもぐぐてもぐぐてもでてこない、3つ以上のファイルをLinuxやらのコマンドでjoinするヤツ記しておきます。
※実環境のコードを備忘録ようにいじってから試してません。
joinとは
joinとは、を書いておいたほうが良い感じしますが例だけおいておきます。- 下の2つのファイルはjoinで使えるような共通の列をもつテキストファイルです
※共通列は各行1文字目です
- joinは共通の列以外を合成します
file1.log
-----------
1 file1-data1
2 file1-data2
3 file1-data3
file2.log
-----------
1 file2-data4
2 file2-data5
3 file2-data6
- join適用後はこんな感じに
join file1.log file2.log
joinの結果(stdout)
-----------
1 file1-data1 file2-data4
2 file1-data2 file2-data5
3 file1-data3 file2-data6
3つ以上のファイルをjoinするシェルスクリプト
本題です。※初回投稿時には誤りがありました。- スクリプト内に関数を書いて、3つ以上のファイルをjoin
- 再帰呼び出しで引数すべてをjoin
- 引数を設定したい場合、関数に直に書き加えるシンプルさ
====================================
function myjoin () {
if [ $# -gt 2 ]; then
join $1 <(myjoin ${@:2})
else
join $1 $2
fi
}
myjoin $mitsuIJOnoFILE
====================================
Written with StackEdit.