【发布时间】:2017-09-17 00:56:34
【问题描述】:
早安,
我一直在尝试找到解决comparing 2 files using awk 中提出的类似问题的解决方案,但我似乎无法理解它。寻求帮助。
我有 2 个文件要比较。 file1和file2的mockup内容如下:
文件 1:
50 0004312805201 06740 2310821
50 0004986504201 00845 2310837
50 0003913155201 47679 2310762
50 0004997395201 2035 2311180
50 0001147242201 15000 23108723
50 0005771878201 13545 I3840000
文件2:
0003913155 A
0005771878 A
0004312805 A
0000000015 B
0000000012 B
1111111111 E
我需要从 file1 对 field2 执行 substring 以生成 10 character length searchable key value 并在 file2 的 field1 中找到匹配值。
如果找到匹配项,则打印出整个 file1 行,并将 file2 中的 field2 作为新字段附加。
如果不匹配,则打印出整个 file1 行,并附加字符串“NO”作为新字段。输出最好重定向到文件。
示例输出如下所示。
输出:
50 0004312805201 06740 2310821 A
50 0004986504201 00845 2310837 NO
50 0003913155201 47679 2310762 A
50 0004997395201 2035 2311180 NO
50 0001147242201 15000 23108723 NO
50 0005771878201 13545 I3840000 A
你们建议我如何通过awk 或GNU-awk 解决这个问题?在准备可搜索的键子字符串并在 awk/GNU-awk 中使用它来构建数组时遇到问题。
任何帮助将不胜感激。在这一点上,我正在转动我的车轮。
谢谢。
【问题讨论】:
-
生成一个 10 字符长度的可搜索键 - 该键不能从字段的开头开始吗?