【发布时间】:2012-10-18 10:56:48
【问题描述】:
我需要比较两个文件 f1.txt 和 f2.txt 并获取匹配项和不匹配项,对于这种情况,我希望匹配两个文件上的第一个字段。并首先打印 f2.txt 的第二个字段,然后打印 f1.txt 的整行。如果在 f2.txt 上找不到匹配项,请声明“未找到”,然后打印 f1.txt 整行。
F1.txt
1;2;3;4;5;6;7;8
1a;2;3;4;5;6;7;8
1b;2;3;4;5;6;7;8
2b;2;3;4;5;6;7;8
F2.txt
1;First
1a;Firsta
1b;Firstb
期望的输出:
First;1;1;2;3;4;5;6;7;8
Firsta;1a;1a;2;3;4;5;6;7;8
Firstb;1b;1b;2;3;4;5;6;7;8
Not Found;2b;2;3;4;5;6;7;8
我可以得到匹配但不是不匹配
awk -F ";" -v OFS="";"" "NR==FNR{a[$1]=$2;next}a[$1]{print a[$1],$0}" f2.txt f1.txt
谢谢
【问题讨论】:
-
OFS 为什么要用双双引号?
-
@glennjackman 我正在使用 Windows Awk 版本,这是双引号的原因,问候