【问题标题】:combine one colum from two files into a thrid file将两个文件中的一列合并到第三个文件中
【发布时间】:2013-08-26 15:54:23
【问题描述】:

我有两个文件 a.txt 和 b.txt,其中包含以下数据。

$ cat a.txt
0x5212cb03caa111e0
0x5212cb03caa113c0
0x5212cb03caa115c0
0x5212cb03caa117c0
0x5212cb03caa119e0
0x5212cb03caa11bc0
0x5212cb03caa11dc0
0x5212cb03caa11fc0
0x5212cb03caa121c0

$ cat b.txt
36 65 fb 60 7a 5e
36 65 fb 60 7a 64
36 65 fb 60 7a 6a
36 65 fb 60 7a 70
36 65 fb 60 7a 76
36 65 fb 60 7a 7c
36 65 fb 60 7a 82
36 65 fb 60 7a 88
36 65 fb 60 7a 8e

我想生成第三个文件 c.txt,其中包含

0x5212cb03caa111e0      36 65 fb 60 7a 5e
0x5212cb03caa113c0      36 65 fb 60 7a 64 
0x5212cb03caa115c0      36 65 fb 60 7a 6a

我可以使用 awk 来实现吗?我该怎么做呢?

【问题讨论】:

    标签: sed awk


    【解决方案1】:

    使用paste 命令:

    paste a.txt b.txt
    
    【解决方案2】:

    paste 确实是最短的解决方案,但是如果您正在寻找问题中所述的 awk 解决方案,那么:

    awk 'FNR==NR{a[++i]=$0;next} {print a[FNR] "\t" $0}' a.txt b.txt
    

    【讨论】:

      【解决方案3】:

      这是一个awk解决方案,一次只在内存中存储两行:

      awk '{ getline b < "b.txt"; print $0, b }' OFS='\t' a.txt
      

      a.txt 中的行隐式存储在$0 中,a.txt 中的每一行都由getlineb.txt 中读取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-13
        • 2021-01-08
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多