【发布时间】:2015-11-13 21:13:55
【问题描述】:
我有大的 .csv 文件(~40MB),我想通过几个条件将它们分成更小的文件,并根据数据相应地命名它们:
- 按第 3 列的内容分隔文件,
- 将第 1 点的输出按内容第 4 列分开,
这是棘手的部分:
- 由 2 个先前操作创建的输出检查第 11 列中是否有任何数据,如果有,则根据内容将此数据分开,然后按第 17 列的内容分开 -> 然后保存输出 /或/与/
- 如果第 11 列中没有数据,请检查第 15 列并相应地分开。接下来检查第 17 列并将此数据按第 17 列分隔 -> 保存输出。
我在 VBA 中有类似的东西,但它对于大文件来说太慢了,而且 Excel 有时会崩溃。像这样的多个文件需要很长时间才能手动删除它们,然后将它们放入 vba 中。
这么多条件下可以剪切文件吗?
提前感谢您的帮助。
例如: (标题是列的#)
1 2 3 4 11 15 17
Date Time COUNTRY CITY CHECK TEST TEST2
2015-08-20 11:54 ENGLAND ABINGDON 1 1
2015-08-21 12:54 ENGLAND BATLEY 2 5
2015-08-22 13:54 ENGLAND FROME 2 6
2015-08-23 14:54 ENGLAND FROME 2 1
2015-08-24 15:54 USA CALIFORNIA 4 8
2015-08-25 16:54 USA CONNECTICUT 4 9
2015-08-26 17:54 USA DELAWARE 1 8
2015-08-27 18:54 GERMANY SAXONY 6 9
2015-08-28 19:54 GERMANY SAXONY 6 10
2015-08-27 18:54 GERMANY SAXONY 4 11
2015-08-28 19:54 GERMANY SAXONY 4 14
2015-08-29 20:54 GERMANY HESSE 8
2015-08-29 20:54 GERMANY HESSE 1 8
File1
2015-08-20 11:54 ENGLAND ABINGDON 1 1
File2
2015-08-21 12:54 ENGLAND BATLEY 2 5
File3
2015-08-22 13:54 ENGLAND FROME 2 6
File4
2015-08-23 14:54 ENGLAND FROME 2 1
File5
2015-08-24 15:54 USA CALIFORNIA 4 8
File6
2015-08-25 16:54 USA CONNECTICUT 4 9
File7
2015-08-26 17:54 USA DELAWARE 1 8
File8
2015-08-27 18:54 GERMANY SAXONY 4 9
2015-08-28 19:54 GERMANY SAXONY 4 10
File9
2015-08-27 18:54 GERMANY SAXONY 6 11
2015-08-28 19:54 GERMANY SAXONY 6 14
File10
2015-08-29 20:54 GERMANY HESSE 8
File11
2015-08-29 20:54 GERMANY HESSE 1 8
【问题讨论】:
-
也许可以向我们展示 10-20 行的混合数据以及处理后的外观。
-
@MarkSetchell 我在问题描述中添加了“示例”。
-
你有没有在 bash 中尝试过任何东西?你的分隔符是什么?制表符?
-
@carlspring 我是 bash 的新手(一些真正的样本切割等)。我在 VBA 方面更高级,我的分隔符是 TAB。
标签: linux excel bash csv command-line