我正在尝试从两个不同目录的文本文件中提取column1和column7。这些目录中的文件名相同。我需要将输出保存到另一个目录。
file1.txt in D1 directory
column1 column2 column3 column7
david 45.2 14.6 45.0
grecy 12.0 0.0 12.0
anjal 23.2 321.0 34.5
file1.txt in D2 directory
column1 column2 column3 column7
david 45.2 14.6 56.0
grecy 10.0 0.0 12.0
moha 23.1 321.0 334.5
output format (save the output as file1.txt in D3 directory)
column1 column1 column7 column7
david david 45.0 56.0
grecy grecy 12.0 12.0
anjal moha 34.5 334.5
您的建议将不胜感激。
答案 0 :(得分:3)
使用paste
和awk
的快捷方式:
paste D1/file1.txt D2/file1.txt | awk '{ printf "%s\t%s\t%s\t%s\n", $1, $5, $4, $8 }' > D3/file1.txt
结果:
column1 column1 column7 column7
david david 45.0 56.0
grecy grecy 12.0 12.0
anjal moha 34.5 334.5
编辑:要处理多个文件,您可以使用bash循环:
for i in D1/*.txt; do paste "$i" D2/${i/D1\//} | awk '{ printf "%s\t%s\t%s\t%s\n", $1, $5, $4, $8 }' > D3/${i/D1\//}; done
答案 1 :(得分:0)
awk '{
a1=$1;b1=$4;
getline <"D2/file1.txt";
print a1,$1,b1,$4
}' D1/file1.txt >D3/file1.txt
答案 2 :(得分:0)
join -j 1 -o 1.1,2.1,1.7,2.7 <(D1/file1.txt | sort -k1,1) <(sort -k1,1 D2/file1.txt) > D3/file1.txt