使用bash脚本

时间:2016-02-08 18:23:55

标签: bash awk

我有两个文件,我试图从每个文件中提取第三列并将它们组合在一起。如何将它们并排组合成一个表?

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

2 个答案:

答案 0 :(得分:3)

使用awk你可以这样做:

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

答案 1 :(得分:1)

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

$ f3() { awk '{print $3}' "$1"; }; paste <(f3 wheat.txt) <(f3 maize.txt)

b73_chr10       w22_chr9
w22_chr7        w22_chr10
w22_chr8        w22_chr6