ogu*_*h4n 10 c# csv sorting file
我有20GB + csv文件,如下所示:
**CallId,MessageNo,Information,Number**
1000,1,a,2
99,2,bs,3
1000,3,g,4
66,2,a,3
20,16,3,b
1000,7,c,4
99,1,lz,4
...
Run Code Online (Sandbox Code Playgroud)
我必须通过CallId和MessageNo将此文件命名为asc.(一种方法是加载数据库 - >排序 - >导出)
如何在不将所有行加载到c#内存的情况下对此文件进行排序?(比如使用streamreader逐行)
你知道一个解决方案库吗?我等你的意见,谢谢
您应该使用OS排序命令.通常它只是
sort myfile
Run Code Online (Sandbox Code Playgroud)
接着是一些神秘的开关.这些命令通常适用于大文件,并且通常有选项可以在其他物理硬盘上指定临时存储.请参阅此前一个问题,以及Windows sort命令"man"页面.由于Windows排序不足以满足您的特定排序问题,因此您可能希望使用GNU coreutils 将Linux的强大功能sort带到Windows.
这是你需要做的.
sort.exe从bin文件夹中提取到计算机上的某个文件夹,例如您要排序的文件所在的文件夹..dll文件解压缩到同一文件夹中sort.exe现在假设您的文件如下所示:
1000,1,a,2
99,2,bs,3
1000,3,g,4
66,2,a,3
20,16,3,b
1000,7,c,4
99,1,lz,4
Run Code Online (Sandbox Code Playgroud)
你可以在命令提示符下写:
sort.exe yourfile.csv -t, -g
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
20,16,3,b
66,2,a,3
99,1,lz,4
99,2,bs,3
1000,1,a,2
1000,3,g,4
1000,7,c,4
Run Code Online (Sandbox Code Playgroud)
在此处查看更多命令选项.如果这是您想要的,请不要忘记提供带-o开关的输出文件,如下所示:
sort.exe yourfile.csv -t, -g -o sorted.csv
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7823 次 |
| 最近记录: |