在另一个文件中搜索 AWK 的输出

ASA*_*SAD 4 command-line awk text-processing

我有两个文件fileA和fileB。

我必须从 fileA 中提取 column1 awk '{print $1}',然后将输出搜索到其他 fileB 中,并将匹配的记录保存到一个新文件 fileC 中,例如:

fileA

seg1     rec1
seg2     rec2
seg3     rec3 
Run Code Online (Sandbox Code Playgroud)

我需要使用 awk 命令检索第 1 列,并搜索第 1 列fileB以检索如下记录:

fileB

seg1     one
seg2     two
seg3     three
seg4     four
seg5     five
Run Code Online (Sandbox Code Playgroud)

从文件A 中提取列1 数据,并使用该数据在文件B 中进行搜索,并将匹配的记录保存到测试文件中。我的输出应该是这样的:

fileC

seg1       one
seg2       two
seg3       three
Run Code Online (Sandbox Code Playgroud)

αғs*_*нιη 8

可以通过以下方式轻松实现awk

awk 'NR==FNR{inFileA[$1]; next} ($1 in inFileA)' fileA fileB > write_to_fileC
Run Code Online (Sandbox Code Playgroud)

结果,

seg1       one
seg2       two
seg3       three
Run Code Online (Sandbox Code Playgroud)

在上面,首先我们正在读取fileA并将整个 column1 保存到一个名为inFileA的数组中,然后在 fileB 中查找它的第一列,如果它与 fileA 中保存的 column1 匹配,则去打印 fileB 的整行。