将不同文件中的值合并到一个 CSV 文件中

Combining values from different files into one CSV file

提问人:grosauro 提问时间:8/25/2008 最后编辑:eLRuLLgrosauro 更新时间:12/17/2017 访问量:1109

问:

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

编辑:

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

我试图做:

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

并且得到了一个奇怪的输出。我后来意识到这种情况正在发生,因为有些文件在行尾既有回车符又有换行符,而其他文件只有换行符。我必须永远记住要注意这些事情。 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

正则表达式 Linux UNIX 外壳

评论


答:

0赞 sparkes 8/25/2008 #1

您可能需要澄清或重新标记您的问题,但就目前而言,答案如下。

在 Linux 下连接两个文件

cat filetwo >> fileone
2赞 Bjorn Reppen 8/25/2008 #2

文件 1:

1
2
3

文件2:

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

将产生:

1;2
3;4
5;6
1赞 wilhelmtell 8/25/2008 #3

我有一种感觉,你还没有打完你的问题,但我还是会试一试。;)

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赞 Frank Krueger 8/25/2008 #4

如果您使用的是 Windows,请不要忘记多功能的 LogParser

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

0赞 Dana the Sane 8/25/2008 #5

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