将来自不同文件的值组合到一个CSV文件中

时间:2020-03-05 18:42:37  来源:igfitidea点击:

我有几个文件,每行包含一个值。

编辑 :

在撰写本文时,我想出了这个问题的答案,却没有意识到我是错误地将其张贴在不完整的状态下。

我正在尝试做:

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

并且得到了一个奇怪的输出。后来我意识到这种情况的发生是因为某些文件在行尾同时具有回车符和换行符,而另一些文件只有换行符。我必须永远记住要注意那些事情。

解决方案

回答

我们可能需要澄清或者重新标记问题,但从目前的角度来看,答案在下面。

在Linux下连接两个文件

cat filetwo >> fileone

回答

文件1:

1
2
3

文件2:

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

将产生:

1;2
3;4
5;6

回答

我觉得我们尚未输入完问题,但我还是给我们一个机会。 ;)

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

回答

如果我们使用的是Windows,也不要忘记功能广泛的LogParser。

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

回答

使用logparser或者命令行工具的先前答案应该有效。如果要对记录进行一些更复杂的操作(例如过滤或者联接),则可以考虑使用ETL工具(想到了Pentaho,Mapforce和Talend)。这些工具通常为我们提供图形调色板,以定义数据源与要在行上执行的任何操作之间的关系。