小编BSP*_*BSP的帖子

整理制表符分隔的文件

我想比较映射文件中的信息,以便以制表符分隔的文件格式检索交联信息。

例如,一个文件包含

COG0001 882.DVU3168
COG0002 883.DvMF_2502
COG0001 1140.Synpcc7942_0645
COG0001 1148.SYNGTS_2220
Run Code Online (Sandbox Code Playgroud)

另一个文件

COG0001 H
COG0002 E
Run Code Online (Sandbox Code Playgroud)

最终文件应包含以下信息:

COG0001 882.DVU3168 H
COG0002 883.DvMF_2502   E
COG0001 1140.Synpcc7942_0645    H
COG0001 1148.SYNGTS_2220    H
Run Code Online (Sandbox Code Playgroud)

编辑

回到我的问题,我还想将信息从文件 2 打印到文件 3。

我的命令是:

awk -F $'\t' 'FNR==NR{a[$2]++;next}a[$1]''{print $0, ..... }' file2 file1 > file3
Run Code Online (Sandbox Code Playgroud)

这将根据匹配第 2 列(file2)到第 1 列(file1)的内容为我提供从 file1 的所有内容。

如何设置以便我也可以打印文件 2 中的信息?

text-processing join

3
推荐指数
1
解决办法
568
查看次数

合并两个表,包括多次出现的列标识符

我想合并两个表:

文件 1:

1 今天
2 明天
3 红色

文件2:

1 很多
1 有时
2 在工作
2 在家里
2 有时
3 新

所需的输出(文件 3):

1 今天很多
1 今天有时
2 明天上班
2 明天在家
2 明天有时
3 红色 新

我想出了以下内容:

awk -F '[\t]' -v OFS='\t' '{i=$1;$1=x} NR==FNR{A[i]=$0;next} A[i]{print i,$0A[i]}' file2 file1 > file3
Run Code Online (Sandbox Code Playgroud)

但是,它只给了我:

1 今天有时
2 明天有时
3 红色 新

awk text-processing join

2
推荐指数
2
解决办法
837
查看次数

标签 统计

join ×2

text-processing ×2

awk ×1