标签: sorting

在 Windows 上对超大 (800GB) 文本文件的内容进行排序

我有一个文本文件,每行一个单词,文件大小为 800GB。我需要按字母顺序对单词进行排序。

我曾尝试使用Windows 排序程序使用:

sort.exe input.txt /o output.txt
Run Code Online (Sandbox Code Playgroud)

这给出了错误:没有足够的主内存来完成排序。

我有 32GB 的RAM,所以当我尝试使用以下命令为排序指定 10GB 的内存时:

sort.exe input.txt /o output.txt /M 10000000
Run Code Online (Sandbox Code Playgroud)

我得到:

警告:指定的内存大小正在减少到可用的分页内存。

输入记录超过最大长度。指定更大的最大值。

我有哪些选择?

windows sorting

27
推荐指数
3
解决办法
1万
查看次数

按日期排序 - 非常慢

我正在使用 Windows 8 RTM。我在一个文件夹中有大约 1,100 个文件。当我按日期(在任一方向)排序时,地址栏显示绿色进度指示器,好像它正在努力执行排序。这应该是即时的 - 为什么要花这么长时间?按日期对这些文件进行排序可能需要 2 分钟!(这在 Windows 7 中是即时的。)

windows-explorer sorting windows-8

25
推荐指数
1
解决办法
1万
查看次数

如何按行内容对 Excel 电子表格的列进行排序?

如何对 Excel 电子表格的列进行排序?在Sort从命令Data菜单中只允许我进行排序由值。我想按特定的内容按字母顺序对进行排序。

我怎样才能做到这一点?

sorting spreadsheet microsoft-excel

22
推荐指数
1
解决办法
6万
查看次数

如何更改 Windows 资源管理器和文件对话框上的默认排序顺序

我的文件对话框显示按日期排序的文件,我希望它按文件名的字母顺序排序。

windows-explorer sorting

20
推荐指数
2
解决办法
8万
查看次数

按 IP 地址对 Excel 列进行排序

我有一个相当大(超过 200 行)的 Excel 电子表格,其中列出了我网络中的项目(即打印机、服务器、工作站、网络投影仪等),第一列之一是 IP 地址字段,它采用192.168.x.y. 当我尝试对其进行排序时,我的问题是它(例如)从192.168.0.85192.168.0.9. 我想看到的是它基于第一3个字节排序,那么最后一个字节逻辑(即.1.2.3,等)。这可能吗?如果是这样,如何?

sorting microsoft-excel

19
推荐指数
2
解决办法
3万
查看次数

是否有等同于 Unix uniq 的 Windows?

我需要从文本文件中删除重复的行,这在 Linux 中使用很简单

cat file.txt |sort | uniq
Run Code Online (Sandbox Code Playgroud)

当 file.txt 包含

aaa
bbb
aaa
ccc
Run Code Online (Sandbox Code Playgroud)

它会输出

aaa
bbb
ccc
Run Code Online (Sandbox Code Playgroud)

有 Windows 等价物吗?或者如何以 Windows 方式执行此操作?

windows sorting uniq

19
推荐指数
2
解决办法
2万
查看次数

排序人类可读的文件大小

如何使用人类可读的文件大小排序、考虑大小标识符(G、M、K)的数字排序对列表进行排序?du -sh例如,我可以对“ ”输出进行排序吗?

问题:考虑列出文件/文件夹并按大小对其进行排序的问题。您可以通过运行来实现:

du -s * | sort -n
Run Code Online (Sandbox Code Playgroud)

这列出了按大小排序的文件/文件夹。但是,打印的大小值以字节(或兆字节或千兆字节,如果您选择)为单位。

能够根据人类可读的值进行排序是可取的,所以我可以运行类似于

du -sh * | <human-readable file sort>
Run Code Online (Sandbox Code Playgroud)

并在 2.0M 后显示 1.5GB 文件夹。

linux mac unix sorting

17
推荐指数
2
解决办法
2万
查看次数

Windows 7,有什么办法可以对混合在一起的文件夹和文件进行排序?

有没有办法在 Windows 7 中按名称对文件夹和文件进行排序?

如果您查看此页面会更容易理解。

我希望我的文件夹和文件像第一个屏幕截图的 BEFORE 情况一样排列。

如果使用 Windows 资源管理器无法做到这一点,是否有任何我应该尝试的文件管理程序?

我已经尝试过 Total Commander。

windows-7 sorting

16
推荐指数
1
解决办法
1万
查看次数

Sort --parallel 不是并行化

我正在尝试使用带有 sort -u 的 egrep 从文件中提取一组唯一的行,然后计算它们。大约 10% 的行(字母表 [ATCG] 中的所有 100 个字符)是重复的。有两个文件,每个文件大约 3 个演出,50% 不相关,所以可能有 3 亿行。

LC_ALL=C  grep -E  <files> |  sort --parallel=24  -u | wc -m
Run Code Online (Sandbox Code Playgroud)

在 LC_ALL=C 和使用 -x 加速 grep 之间,到目前为止最慢的部分是排序。阅读手册页让我找到了 --parallel=n,但实验显示绝对没有任何改进。对 top 的一点挖掘表明,即使使用 --parallel=24,排序过程一次也只能在一个处理器上运行。

我有 4 个具有 6 个内核和 2 个线程/内核的芯片,总共提供 48 个逻辑处理器。请参阅 lscpu,因为 /proc/cpuinfo 会太长。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                48
On-line CPU(s) list:   0-47
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             4
NUMA node(s):          8 …
Run Code Online (Sandbox Code Playgroud)

linux cpu sorting parallel-processing

15
推荐指数
2
解决办法
7142
查看次数

如何使用unix排序进行自定义排序?

我正在使用 unix sort 对具有多列的逗号分隔文件进行排序。到目前为止,这对于按数字或字母顺序对数据进行排序非常有效:

任何排序前的示例文件:

C,United States,WA,Tacoma,f,1
A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,Canada,QC,Montreal,f,2
A,Bahamas,Bahamas,Nassau,f,2
A,United States,NY,New York,f,1
Run Code Online (Sandbox Code Playgroud)

对文件进行排序: $ sort -t ',' -k 2,2 -k 3,3 -k 4,4 -k 5,5r -k 6,6nr tmp.csv

排序结果:

A,Bahamas,Bahamas,Nassau,f,2
A,Canada,QC,Montreal,f,2
A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,United States,NY,New York,f,1
C,United States,WA,Tacoma,f,1
Run Code Online (Sandbox Code Playgroud)

这是问题:我想根据自定义排序对第 2 列进行排序,这意味着我首先要美国,然后是加拿大,然后是巴哈马:

期望排序:

A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,United States,NY,New York,f,1
C,United States,WA,Tacoma,f,1
A,Canada,QC,Montreal,f,2
A,Bahamas,Bahamas,Nassau,f,2
Run Code Online (Sandbox Code Playgroud)

有什么方法可以通过 unix sort 自定义排序顺序,然后它可以应用吗?就像是: $ sort -t ',' -k 2,2:'United States, Canada, Bahamas' -k 3,3 -k 4,4 -k …

unix sorting

14
推荐指数
1
解决办法
8012
查看次数