csv - 如何将数据从一列拆分为多列?
问题描述
我有一个 csv 文件,其中一列中的所有数据都像
A
8;a5747dfae47cccc8;7382625596;Anil;2017-08-07 16:51:58.753
9;a5747dfae47cccc8;7382625596;Anil;2017-08-07 17:21:11.416
10;a5747dfae47cccc8;7382625596;Anil;2017-08-07 17:41:09.771
11;a5747dfae47cccc8;7382625596;Anil;2017-08-07 18:01:22.448
而且我要
A B C D E
8 a5747dfae47cccc8 7382625596 Anil 2017-08-07 16:51:58.753
9 a5747dfae47cccc8 7382625596 Anil 2017-08-07 17:21:11.416
10 a5747dfae47cccc8 7382625596 Anil 2017-08-07 17:41:09.771
11 a5747dfae47cccc8 7382625596 Anil 2017-08-07 18:01:22.448
解决方案
如果你添加“A;B;C;D;E”,你就会得到你想要的:它是一个带有“;”的五列 CSV 作为字段分隔符
A;B;C;D;E
8;a5747dfae47cccc8;7382625596;Anil;2017-08-07 16:51:58.753
9;a5747dfae47cccc8;7382625596;Anil;2017-08-07 17:21:11.416
10;a5747dfae47cccc8;7382625596;Anil;2017-08-07 17:41:09.771
11;a5747dfae47cccc8;7382625596;Anil;2017-08-07 18:01:22.448
如果你想使用命令行,你必须删除第一行(我使用 sed)然后漂亮地打印你的输入(我使用 Miller https://github.com/johnkerl/miller)
和
<input.csv sed -e '1,1d' | mlr --n2p --ifs ";" then label A,B,C,D,E
你将会有
A B C D E
8 a5747dfae47cccc8 7382625596 Anil 2017-08-07 16:51:58.753
9 a5747dfae47cccc8 7382625596 Anil 2017-08-07 17:21:11.416
10 a5747dfae47cccc8 7382625596 Anil 2017-08-07 17:41:09.771
11 a5747dfae47cccc8 7382625596 Anil 2017-08-07 18:01:22.448
推荐阅读
- flutter - 如何在我的应用程序中添加 Flutter API/模块?
- android-studio - Android Studio 4.0 中的 BottomNavigationView 和 TabLayout 之间的 Tab UI 有何不同?
- android - 分组通知触发相同的待处理意图
- bash - 检测单色图像中最右边黑色像素的 x 值?
- jwt - 使用 Amplify SDK 登录 Cognito,JWT 在哪里?
- javascript - Internet Explorer /Edge 中线元素 (svg) 上的 getTotalLength
- scikit-learn - 如何通过调整决策函数的阈值来调整支持向量分类器(SVC)的预测(svc.predict())?
- python - python中max()、min()函数的正确使用
- laravel - 覆盖 html 模板行为后,我将 AIMEOS 电子商务扩展程序放在 Laravel 文件夹的哪个位置?
- php - 我想动态创建按钮并访问任何特定的