首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash脚本将来自不同文件的两列并排组合到一个表中。

使用bash脚本将来自不同文件的两列并排组合到一个表中。
EN

Stack Overflow用户
提问于 2016-02-08 18:23:55
回答 2查看 1.6K关注 0票数 1

我有两个文件,我试图从每个文件中提取第三列,并将它们合并为together.How,将它们并排合并到一个表中?

代码语言:javascript
复制
file1="maize.txt"
file2="wheat.txt"

awk -F '{print $3}' file1
awk -F '{print $3}' file2

"wheat.txt"
chr -   b73_chr10   B73-Chr10   0   150189435       
chr -   w22_chr7    W22-Chr7    0   176764762       
chr -   w22_chr8    W22-Chr8    0   175793759       

"maize.txt"
chr -   w22_chr9    W22-Chr9    0   156750706       
chr -   w22_chr10   W22-Chr10   0   150189435       
chr -   w22_chr6    W22-Chr6    0   169174353   

Output : 

b73_chr10   w22_chr9
w22_chr7    w22_chr10
w22_chr8    w22_chr6
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-08 18:29:48

使用awk,您可以:

代码语言:javascript
复制
awk -v OFS='\t' 'FNR==NR{a[FNR]=$3; next} {print a[FNR], $3}' wheat.txt maize.txt
b73_chr10   w22_chr9
w22_chr7    w22_chr10
w22_chr8    w22_chr6
票数 4
EN

Stack Overflow用户

发布于 2016-02-08 18:51:05

您要寻找的工具是paste。您可以编写一个函数来提取上面定义的第三个字段。

代码语言:javascript
复制
$ f3() { awk '{print $3}' "$1"; }; paste <(f3 wheat.txt) <(f3 maize.txt)

b73_chr10       w22_chr9
w22_chr7        w22_chr10
w22_chr8        w22_chr6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35276602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档