假如有三个文件,file1.txt, file2.txt, file3.txt,如下所示
file1.txt2.7-3.30164
2.8-5.75132
2.9-7.30702
3.0-8.19636
3.1-8.59629
3.2-8.64362
3.3-8.44339
3.4-8.07568
3.5-7.60091
3.6-7.06418
3.7-6.49867
file2.txt2.7-6.60328
2.8-11.50264
2.9-14.61404
3.0-16.39272
3.1-17.19258
3.2-17.28724
3.3-16.88678
3.4-16.15136
3.5-15.20182
3.6-14.12836
3.7-12.99734
file3.txt2.7-6.60328
2.8-11.50264
2.9-14.61404
3.0-16.39272
3.1-17.19258
3.2-17.28724
3.3-16.88678
3.4-16.15136
3.5-15.20182
3.6-14.12836
3.7-12.99734
现在想将三个文件中的数据进行对比,所以希望将它们处理到一个文件中,分别处于不同的列,如下所示:2.7-3.30164-6.60328-9.90492
2.8-5.75132-11.50264-17.25396
2.9-7.30702-14.61404-21.92106
3.0-8.19636-16.39272-24.58908
3.1-8.59629-17.19258-25.78887
3.2-8.64362-17.28724-25.93086
3.3-8.44339-16.88678-25.33017
3.4-8.07568-16.15136-24.22704
3.5-7.60091-15.20182-22.80273
3.6-7.06418-14.12836-21.19254
3.7-6.49867-12.99734-19.49601
方法极其简单!只要使用paste命令就可以了,具体使用如下所示:$ paste file1.txt file2.txt file3.txt > result.txt
那么结果文件result.txt中的内容就会如下所示:2.7-3.301642.7-6.603282.7-9.90492
2.8-5.751322.8-11.502642.8-17.25396
2.9-7.307022.9-14.614042.9-21.92106
3.0-8.196363.0-16.392723.0-24.58908
3.1-8.596293.1-17.192583.1-25.78887
3.2-8.643623.2-17.287243.2-25.93086
3.3-8.443393.3-16.886783.3-25.33017
3.4-8.075683.4-16.151363.4-24.22704
3.5-7.600913.5-15.201823.5-22.80273
3.6-7.064183.6-14.128363.6-21.19254
3.7-6.498673.7-12.997343.7-19.49601
中间会多余几列,可以手动删除,也可以使用awk命令删除,下面是示例代码。paste 1nn/result.txt 2nn/result.txt chen/result.txt > ttmp.txt
awk '{printf "%8.6f\t%8.6f\t%8.6f\t%8.6f\n",$1,$2,$4,$6}' ttmp.txt > result.txt