使用awk处理一个文件时打印一个文件中的列

伊尼安

因此,我试图理解使用合并两个文件的答案awk并且提出了我的要求的解决方案。

awk 'FNR==NR{a[$1]=$2 FS $3;next} {a[$1]=$2 FS $3}{ print a[$1]}' file2 file1

我的档案如下:

file1file2内容如下: -

1 xyz pqr F -
1 abc def A -
1 abc mno G -


1 abc def A
1 xyz pqr T

我期望的输出如下:

1 xyz pqr F - T
1 abc def A - A

基本上是从file2开始匹配第1,2,3file1列,file2然后在结果打印最后一列的内容

因此,我对解决方案的理解如下:

  1. FNR==NR{a[$1]=$2 FS $3;next}将处理file2将数组的条目存储a为column2的空间column3直到的结尾file2
  2. 现在file1,我可以从符合这些行file2{a[$1]=$2 FS $3},这将给我都在这些行file1其列$1的值a[$1]是一样的COLUMN2价值$2空间栏3的值$3现在问题来了。
  3. 在file1中对它们进行匹配之后,我不知道如何按预期方式打印值。我尝试打印$0a[$1]他们给了我

按顺序输出

1 xyz pqr F -
1 abc def A -

xyz pqr
abc def

分别。我最大的担心是,因为我file2FNR==NR传递过程中没有捕获到最后一列,所以我可能没有将值存储在数组中?还是我将其存储?

坐着

使用这个awk

awk 'NR==FNR{a[$2 FS $3]=$4; next} $2 FS $3 in a{print $0, a[$2 FS $3]}' file2 file1

您的中存在一些问题awk

  • 您主要关注的是$4file2但是,您尚未存储它。
  • 在访问时file1,您正在为分配一个a值为的数组file1(这一点:a[$1]=$2 FS $3

正如@EdMorton所建议的,一种更易读的形式:

awk '{k=$2 FS $3} NR==FNR{a[k]=$4; next} k in a{print $0, a[k]}' file2 file1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用awk比较两个文件中的两列时创建一个新文件

来自分类Dev

使用awk将一个文件中的列替换为另一个文件中的列?

来自分类Dev

使用AWK根据另一个文件中的值更新一个文件

来自分类Dev

awk / sed /等在一个文件中连接列

来自分类Dev

使用awk将文件中的两列映射到另一个文件

来自分类Dev

使用awk将文件中的两列映射到另一个文件

来自分类Dev

如何使用awk将数据从文件打印到另一个文件

来自分类Dev

如何使用awk合并具有公共字段的文件并在另一个文件中打印

来自分类Dev

使用python在一个列中减去2个数字一个文件

来自分类Dev

如何使用awk测试列值是否在另一个文件中?

来自分类Dev

awk 使用另一个文件数据过滤一个文件的数据

来自分类Dev

如何使用AWK循环浏览第一个文件并在第一个文件中的每一行旁边打印第二个文件中的所有行?

来自分类Dev

如何使用 awk(或 cut)从管道分隔文件中打印每行的最后一个字段?

来自分类Dev

awk比较两个文件并在文件1中打印第一个字段

来自分类Dev

将一个文件的行中的所有字符精确打印到批处理文件中的一个文件

来自分类Dev

创建一个批处理以使用另一个文件的名称删除一个文件

来自分类Dev

AWK:将一个文件中的列替换为另一文件中的一列

来自分类Dev

如何使用AWK将某些列从一个CSV文件提取到另一个?

来自分类Dev

如何使用AWK将某些列从一个CSV文件提取到另一个?

来自分类Dev

从文件中读取一列的值并打印一个

来自分类Dev

在Asp.net中打印一个aspx文件

来自分类Dev

在python中整齐地打印一个.txt文件

来自分类Dev

使用一个Printdocument打印多个多页文件

来自分类Dev

使用echo每行打印一个文件

来自分类Dev

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

来自分类Dev

使用AWK中的另一个文件查询文件的内容

来自分类Dev

awk命令从tcl文件中删除重复的行并打印到另一个tcl文件中

来自分类Dev

awk print $ 0将文件的所有行打印到列的最后一个位置;如何开始打印?

来自分类Dev

如何使用awk打印特定列中字符串的第一个单词

Related 相关文章

  1. 1

    使用awk比较两个文件中的两列时创建一个新文件

  2. 2

    使用awk将一个文件中的列替换为另一个文件中的列?

  3. 3

    使用AWK根据另一个文件中的值更新一个文件

  4. 4

    awk / sed /等在一个文件中连接列

  5. 5

    使用awk将文件中的两列映射到另一个文件

  6. 6

    使用awk将文件中的两列映射到另一个文件

  7. 7

    如何使用awk将数据从文件打印到另一个文件

  8. 8

    如何使用awk合并具有公共字段的文件并在另一个文件中打印

  9. 9

    使用python在一个列中减去2个数字一个文件

  10. 10

    如何使用awk测试列值是否在另一个文件中?

  11. 11

    awk 使用另一个文件数据过滤一个文件的数据

  12. 12

    如何使用AWK循环浏览第一个文件并在第一个文件中的每一行旁边打印第二个文件中的所有行?

  13. 13

    如何使用 awk(或 cut)从管道分隔文件中打印每行的最后一个字段?

  14. 14

    awk比较两个文件并在文件1中打印第一个字段

  15. 15

    将一个文件的行中的所有字符精确打印到批处理文件中的一个文件

  16. 16

    创建一个批处理以使用另一个文件的名称删除一个文件

  17. 17

    AWK:将一个文件中的列替换为另一文件中的一列

  18. 18

    如何使用AWK将某些列从一个CSV文件提取到另一个?

  19. 19

    如何使用AWK将某些列从一个CSV文件提取到另一个?

  20. 20

    从文件中读取一列的值并打印一个

  21. 21

    在Asp.net中打印一个aspx文件

  22. 22

    在python中整齐地打印一个.txt文件

  23. 23

    使用一个Printdocument打印多个多页文件

  24. 24

    使用echo每行打印一个文件

  25. 25

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

  26. 26

    使用AWK中的另一个文件查询文件的内容

  27. 27

    awk命令从tcl文件中删除重复的行并打印到另一个tcl文件中

  28. 28

    awk print $ 0将文件的所有行打印到列的最后一个位置;如何开始打印?

  29. 29

    如何使用awk打印特定列中字符串的第一个单词

热门标签

归档