我编写了一个 AWK 脚本来处理文本文件,现在需要扩展它,以便处理的输出根据第一个文件中的字段从另一个文件中获取数据。这是我的意思的一个例子;
文件1.txt
abc123~17~yy~12345678
abc456~12~yy~23456789
abc789~34~zz~12345678
文件2.txt
abc123~11~22~33~ABC-57
abc456~22~11~33~ABC-99
abc789~33~22~11~ABC-12
我当前的 awk 脚本从第 4 个字段为“12345678”的 File1.txt 中提取并处理每一行,因此它找到 2 行。
我现在想扩展它,所以从我找到的那行开始,说
abc123~xx~yy~12345678
我们使用 abc123 并在 File2.txt 中搜索它并打印该行的第 4 个字段。
例如。我的 awk 脚本将在 File1.txt 的字段 4 中搜索一个标记,然后用字段 1 和 File2.txt 的字段 4 打印与 File1.txt 中的字段 1 相关的行
因此,如果我们正在搜索 12345678,我的输出将是
12345678 abc123 ABC-57 17
12345678 abc789 ABC-12 34
(17 和 34 来自 File1.txt 中的字段 2)。
综上所述,在 File1.txt 的 Field 4 中搜索字符串,在 File2.txt 中找到 File1.txt 中的 Field 1 与 File1.txt 中的 Field 1 匹配的行。然后打印
文件. 字段 4 文件 1. 字段 1 文件 2. 字段 4 文件 1. 字段 2
我希望这很清楚。
我尝试在 File2.txt 中查找“abc123”字符串,然后选择第 4 个字段。这似乎不起作用,现在我认为在字段 1 上建立索引并存储字段 4 的 File2.txt 的 AWK 数组可能会做到这一点。
我不知道该怎么做。
(注意,这是我想要做的一个精简的例子,我真正的要求是文件中有更多的数据)。