【发布时间】:2013-12-15 10:22:14
【问题描述】:
File1(包含数百万条记录的大文件)
1,5,404920012,type1,info1
4,2,10000234,type2,info2
2,3,40492001223,type3,info3
3,1,50492001223,type4,info4
File2(只有 10 行的小文件)
40492=产品1
10000=产品2
输出
1,5,404920012,type1,product1,info1
4,2,10000234,type2,product2,info2
2,3,40492001223,type3,product1,info3
3,1,50492001223,type4,NOMATCH,info4
注意事项:
我想比较从文件 1 到文件 2 的第 3 列的前 5 个字符
匹配字段后,product1 应该在输出的第 5 列
我尝试过的:
虽然我是 awk 高级编程的新手,但到目前为止我学到的东西.. 我可以合并 2 个文件,如下所示:
开始 { FS = OFS = "," } FNR == NR { x=$1; $1 = ""; a[x] = $0; 下一个 }
{ if($3 in a)print $0","a[$3]; 否则打印 $0",,"; }
但是这个问题是..我不知道如何为第二个文件传递不同的 FS(= 在第二个文件的情况下)以及如何组合 substr 函数 echo 404920012 | awk '{打印 substr($0,1,5)}' 在 if 条件下..
【问题讨论】:
-
我已经更新了我尝试过的内容以及我被困在查询下方的位置..
标签: awk