首页 > 解决方案 > 如何将一个文本文件中的多列替换为另一个文本文件中的列?

问题描述

我有:

$ cat file1.csv (tab delimited)
R923E06 273911 2990492 2970203 F Resistant 
R923F06 273910 2990492 2970203 F Resistant 
R923H02 273894 2970600 2990171 M Resistant

和:

$ cat file2.txt (space delimited and it's a large file)
R923E06 CC GG TT AA ...
R923F06 GG TT AA CC ...
R923H02 TT GG CC AA ...

如何file2.txt用所有 6 列替换第一列file1.csv

标签: pythonbashcsvawksed

解决方案


使用join你可以这样做:

join   <(sed -e 's/\t/ /g' file1.csv) <(cat file2.txt)

sed将制表符更改为空格

join在一个公共字段上连接两个文件的行。

输出:

R923E06 273911 2990492 2970203 F Resistant  CC GG TT AA ...
R923F06 273910 2990492 2970203 F Resistant  GG TT AA CC ...
R923H02 273894 2970600 2990171 M Resistant TT GG CC AA ...

推荐阅读