2008-08-24 63 views
2

我有几个文件在每行中包含一个值。将来自不同文件的值合并到一个CSV文件中

编辑:

我同时以书面的帖子当中想出的答案,这个问题并没有意识到我错在未完成状态的贴吧。

我试图做的事:

paste -d ',' file1 file2 file 3 file 4 > file5.csv 

,并得到一个奇怪的输出。后来我意识到发生了这种情况,因为有些文件在行尾有回车符和换行符,而其他文件只有换行符。我一直记得要注意那些事情。

回答

2

文件1将两个文件:

 
1 
2 
3 

文件2:

 
2 
4 
6 
paste --delimiters=\; file1 file2 

将产生:

 
1;2 
3;4 
5;6 
0

您可能需要澄清或重新提出您的问题,但现在回答如下。

的Linux

cat filetwo >> fileone 
1

我有一种感觉,你还没有完成输入你的问题,但我仍然会给它一个镜头。 ;)

file1: file2: file3: 
1  a  A 
2  b  B 
3  c  C 

~$ paste file{1,2,3} |sed 's/^\|$/"/g; s/\t/","/g' 
"1","a","A" 
"2","b","B" 
"3","c","C" 

或者,

~$ paste --delimiter , file{1,2,3} 
1,a,A 
2,b,B 
3,c,C 
0

,如果你使用的是Windows也不要忘记不断多才多艺LogParser

它可以对平面文本文件运行类似SQL的查询来执行各种合并操作。

0

使用logparser或命令行工具的以前的答案应该工作。如果你想对过滤或连接等记录做一些更复杂的操作,可以考虑使用ETL工具(Pentaho,Mapforce和Talend)。这些工具通常会为您提供一个图形调色板来定义数据源与您想要在行上执行的任何操作之间的关系。

相关问题