📌  相关文章
📜  awk 从另一个文件中提取一个文件 (1)

📅  最后修改于: 2023-12-03 15:13:34.085000             🧑  作者: Mango

使用awk从另一个文件中提取一个文件

awk是一种基于文本的处理工具,可以对文本文件进行各种操作,例如搜索,提取和转换等。在本文中,我们将使用awk命令从另一个文件中提取一部分内容,并将其保存为新文件。

程序示例
awk 'NR==FNR{a[$1];next}($2 in a){print}' file1.txt file2.txt > output.txt

其中,file1.txt和file2.txt是我们要处理的文件。这个命令的作用是从file2.txt文件中提取那些在file1.txt文件中出现的第二个字段,并将结果保存到output.txt文件。

在这个命令中,“NR==FNR”是一个测试条件。这个条件表示awk正在处理第一个文件。对于第一个文件,我们将第一个字段存储在一个数组中($1表示第一个字段)。对于第二个文件,我们检查第二个字段是否在数组中出现过,如果出现过,则使用print命令将整行输出。

命令解释

以下是命令中使用的每个参数的解释:

  • NR==FNR:这个条件表示awk正在处理第一个文件。
  • {a[$1];next}:对于第一个文件,我们将第一个字段存储在一个数组中($1表示第一个字段)。
  • ($2 in a):对于第二个文件,我们检查第二个字段是否在数组中出现过。
  • {print}:如果第二个字段出现在数组中,则使用print命令将整行输出。
  • file1.txt file2.txt:我们要处理的两个文件的文件名。
  • > output.txt:将命令的输出重定向到output.txt文件中。
总结

使用awk可以方便地从文件中提取所需信息,并将其保存到新文件中。以上的示例程序可以在linux系统中直接运行。