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

时间:2008-08-24 17:49:02

标签: regex linux unix shell

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

编辑:

我在写这篇文章时想出了这个问题的答案,并没有意识到我在错误的状态下错误地发布了它。

我试图这样做:

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

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

5 个答案:

答案 0 :(得分:2)

文件1:

1
2
3

file2的:

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

将屈服:

1;2
3;4
5;6

答案 1 :(得分: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

答案 2 :(得分:0)

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

在Linux下加入两个文件

cat filetwo >> fileone

答案 3 :(得分:0)

如果你在Windows上,也不要忘记有用的LogParser

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

答案 4 :(得分:0)

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