- 论坛徽章:
- 0
|
回复 5# winway1988
这个是我手动加错的。。不用管,这个是怪我不小心的。。
只是输出结果是没有错,可是有遗漏的。。实际文件对应的是文件二$10,和$14,题目是删掉一些无关列的,所以才为$3和$4- $ awk 'NR==FNR{a[$2 OFS $3]=$0;next}{f10=gensub(/^.*\|([^|.][^|.]*)\.*[^|]*\|*$/,"\\1","g",$10);f14=gensub(/^.*\|([^|.][^|.]*)\.*[^|]*\|*$/,"\\1","g",$14);if(f10 OFS f14 in a)print a[f10 OFS f14],$0}' fileA fileB |wc -l
- 4861
复制代码 但是利用其他的方法,得到的记录数却不一样- awk -f pair.awk fileA |wc -l
- 5170
- BEGIN{
- while (getline < "fileB")
- a[$10FS$14]=$0 }
- { for (item in a)
- { split(item,b)
- if(b[1]~$2 && b[2]~$3)
- print $0"\t"a[item]
- }
- }
复制代码 |
|