在bash中粘贴两个文件(列并排)

时间:2015-12-01 14:21:52

标签: bash paste

我在bash中遇到了粘贴命令的问题

我有一堆三个以逗号分隔的列文本文件,它们共享第2列和第3列。首先,我通过从单个数据文件中提取此共享列来创建txt文件

awk 'BEGIN { FS = "," }{ print $2 "," $3}' file01.txt > msg-coord.txt

然后我通过一个循环来获取列表中每个文件的第一列

for hora
in 00 01 02 03
do

awk 'BEGIN { FS = "," }{ print $1 }' file$hora.txt > a$hora.txt

done

然后尝试粘贴所有新文件(运行正常)

paste -d "," a{00..03}.txt > temporal.txt

并通过粘贴命令添加msg-coord.txt,这不起作用,我找不到原因

paste -d "," msg-coord.txt temporal.txt > msgdata.txt

head msgdata.txt的输出结果

,-0.0127,-0.1773,-0.3749,-0.3780 
,-0.0318,-0.1941,-0.3780,-0.3877
,-0.0510,-0.2109,-0.3807,-0.3973
,-0.0703,-0.2277,-0.3833,-0.4068
,-0.0900,-0.2450,-0.3864,-0.4168
,-0.1101,-0.2632,-0.3903,-0.4272

缺少msg-coord.txt中的两列。

fileXX.txt看起来像

 -0.3686,-12.5000,33.5000
 -0.3877,-12.5000,33.5800
 -0.3973,-12.5000,33.6200
 -0.4068,-12.5000,33.6600
 -0.4168,-12.5000,33.7000
 -0.4272,-12.5000,33.7400
 -0.4382,-12.5000,33.7800
 -0.4504,-12.5000,33.8200
 -0.4638,-12.5000,33.8600

1 个答案:

答案 0 :(得分:1)

在合并之前从数据文件(file*.txt?)中删除DOS行结尾。