将多个.csv文件的内容合并到单个.csv文件中

人民币

我想编写一个脚本,将几个.csv文件的内容合并到一个.csv文件中,即,将所有其他文件的列追加到第一个文件的列中。我曾尝试使用“ for”循环来执行此操作,但无法继续进行。

有人知道如何在Linux中执行此操作吗?

案子

这是一个perl脚本,它读取命令行上指定的每个文件的每一行,并将其附加到数组(@csv中的元素上当没有更多输入时,它将输出的每个元素@csv

这些.csv文件将按照在命令行上列出的顺序添加。

警告:此脚本假定所有输入文件的行数均相同如果任何文件的行数与其他文件不同,则输出将可能无法使用。

#!/usr/bin/perl

use strict;

my @csv=();

foreach (@ARGV) {
  my $linenum=0;

  open(F,"<",$_) or die "couldn't open $_ for read: $!\n";

  while (<F>) {
    chomp;
    $csv[$linenum++] .= "," . $_;
  };

  close(F);
};

foreach (@csv) {
  s/^,//;   # strip leading comma from line
  print $_,"\n";
};

给定以下输入文件:

==> 1.csv <==
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4

==> 2.csv <==
5,6,7,8
5,6,7,8
5,6,7,8
5,6,7,8

==> 3.csv <==
9,10,11,12
9,10,11,12
9,10,11,12
9,10,11,12

它将产生以下输出:

$ ./mergecsv.pl *.csv
1,2,3,4,5,6,7,8,9,10,11,12
1,2,3,4,5,6,7,8,9,10,11,12
1,2,3,4,5,6,7,8,9,10,11,12
1,2,3,4,5,6,7,8,9,10,11,12

好吧,既然您已经阅读了到目前为止,是时候承认这一点不能做也不能做的事情了paste -d, *.csv那么,为什么还要打扰一下perl?paste相当不灵活。如果您的数据完全适合paste做某事,那么您就很好-对工作非常完美,而且速度非常快。如果没有,那对您完全没有用。

有多种方法可以改进像这样的perl脚本(例如,通过计算每个文件的字段数并@csv为每个丢失的文件添加正确的空字段数来处理不同长度的文件)或至少检测到不同的长度并出现错误),但是如果需要更复杂的合并,这是一个合理的起点。

顺便说一句,这使用了一种非常简单的算法,并将所有输入文件的全部内容@csv一次存储在内存中对于现代系统中每个文件最多不超过几MB的文件,这并不是没有道理的。但是,如果要处理巨大的.csv文件,则更好的算法是:

  • 打开所有输入文件,尽管仍有输入要读取:
    • 从每个文件中读取一行
    • 追加行(按@ARGV顺序)
    • 打印附加行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个.csv文件的内容合并到单个.csv文件中

来自分类Dev

将CSV文件合并到单个data.fram

来自分类Dev

将csv文件中的数据合并到Oracle中

来自分类Dev

如何将行合并到 csv 文件中

来自分类Dev

python将多个json请求合并到单个文件并保存

来自分类Dev

将多个.txt文件合并到一个csv中

来自分类Dev

将多个csv文件导入熊猫并将它们合并到一个DataFrame中

来自分类Dev

将多个.txt文件合并到一个csv中

来自分类Dev

将多个 CSV 合并到一个 DataFrame 中,文件名作为列名

来自分类Dev

uglify将多个js文件合并到单个js文件中

来自分类Dev

将子文件夹中的多个 CSV 文件合并到一个唯一的文件中,并在新列中添加文件名

来自分类Dev

使用python合并多个csv文件-结果csv将某些数据推到合并csv中的右侧

来自分类Dev

将多个html模板合并到单个index.html文件中

来自分类Dev

将react build输出合并到单个js文件中

来自分类Dev

将pdf注释合并到单个文件中

来自分类Dev

将 Spark 输出合并到单个文件中

来自分类Dev

将文件夹中的多个csv文件加入到单个csv python中

来自分类Dev

将csv文件内容存储到多个数组中

来自分类Dev

将多个文件的内容导出为 CSV

来自分类Dev

合并多个csv文件

来自分类Dev

读取多个ENVI文件并将它们合并到一个csv中

来自分类Dev

Python将多个文件高效地合并为单个csv文件

来自分类Dev

如何将多个Excel文件中的数据合并到单个Excel文件或Access数据库中?

来自分类Dev

在Java中合并多个csv文件

来自分类Dev

如何将一些CSV文件合并到一个DataFrame中?

来自分类Dev

在单个文件中合并多个 CSV 文件并在第一列中添加每个 CSV 的列名

来自分类Dev

将多个输入CSV文件中的数据以列格式写入单个CSV中

来自分类Dev

将所有文件合并到多个分支中

来自分类Dev

将多个JPG从stdin合并到多文件TIFF中

Related 相关文章

  1. 1

    将多个.csv文件的内容合并到单个.csv文件中

  2. 2

    将CSV文件合并到单个data.fram

  3. 3

    将csv文件中的数据合并到Oracle中

  4. 4

    如何将行合并到 csv 文件中

  5. 5

    python将多个json请求合并到单个文件并保存

  6. 6

    将多个.txt文件合并到一个csv中

  7. 7

    将多个csv文件导入熊猫并将它们合并到一个DataFrame中

  8. 8

    将多个.txt文件合并到一个csv中

  9. 9

    将多个 CSV 合并到一个 DataFrame 中,文件名作为列名

  10. 10

    uglify将多个js文件合并到单个js文件中

  11. 11

    将子文件夹中的多个 CSV 文件合并到一个唯一的文件中,并在新列中添加文件名

  12. 12

    使用python合并多个csv文件-结果csv将某些数据推到合并csv中的右侧

  13. 13

    将多个html模板合并到单个index.html文件中

  14. 14

    将react build输出合并到单个js文件中

  15. 15

    将pdf注释合并到单个文件中

  16. 16

    将 Spark 输出合并到单个文件中

  17. 17

    将文件夹中的多个csv文件加入到单个csv python中

  18. 18

    将csv文件内容存储到多个数组中

  19. 19

    将多个文件的内容导出为 CSV

  20. 20

    合并多个csv文件

  21. 21

    读取多个ENVI文件并将它们合并到一个csv中

  22. 22

    Python将多个文件高效地合并为单个csv文件

  23. 23

    如何将多个Excel文件中的数据合并到单个Excel文件或Access数据库中?

  24. 24

    在Java中合并多个csv文件

  25. 25

    如何将一些CSV文件合并到一个DataFrame中?

  26. 26

    在单个文件中合并多个 CSV 文件并在第一列中添加每个 CSV 的列名

  27. 27

    将多个输入CSV文件中的数据以列格式写入单个CSV中

  28. 28

    将所有文件合并到多个分支中

  29. 29

    将多个JPG从stdin合并到多文件TIFF中

热门标签

归档