- 同时处理多份文件
- 多维数组
- 多文件join,虽然join可以实现多文件合并,但是只要数据少有特殊join就不能工作,用awk会更灵活
awk '
{d[$1,FILENAME]=FILENAME;f[FILENAME]=1;p[$1]=1}
END{
OFS=",\t";
for(pi in p) {
i=0;
for(fi in f){
i+=1
fo[i]=d[pi,fi]
};
print pi, fo[1], fo[2];
}
}' /tmp/1.csv /tmp/2.csv
示例
ceshiren.com: ~ seveniruby$ cat /tmp/11
1 a
2 b
ceshiren.com: ~ seveniruby$ cat /tmp/22
1 dd
2 ea
3 vb
ceshiren.com: ~ seveniruby$ join /tmp/11 /tmp/22
1 a dd
2 b ea
ceshiren.com: ~ seveniruby$ awk '
{d[$1,FILENAME]=$2;f[FILENAME]=1;p[$1]=1}
END{
OFS=",\t";
for(pi in p) {
i=0;
for(fi in f){
i+=1
fo[i]=d[pi,fi]
};
print pi, fo[1], fo[2];
}
}' /tmp/11 /tmp/22
1, a, dd
2, b, ea
3, , vb