我有一个文本文件,每行一个单词,文件大小为 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 8 RTM。我在一个文件夹中有大约 1,100 个文件。当我按日期(在任一方向)排序时,地址栏显示绿色进度指示器,好像它正在努力执行排序。这应该是即时的 - 为什么要花这么长时间?按日期对这些文件进行排序可能需要 2 分钟!(这在 Windows 7 中是即时的。)
如何对 Excel 电子表格的列进行排序?在Sort从命令Data菜单中只允许我进行排序行由值列。我想按特定行的内容按字母顺序对列进行排序。
我怎样才能做到这一点?
我的文件对话框显示按日期排序的文件,我希望它按文件名的字母顺序排序。
我有一个相当大(超过 200 行)的 Excel 电子表格,其中列出了我网络中的项目(即打印机、服务器、工作站、网络投影仪等),第一列之一是 IP 地址字段,它采用192.168.x.y. 当我尝试对其进行排序时,我的问题是它(例如)从192.168.0.85到192.168.0.9. 我想看到的是它基于第一3个字节排序,那么最后一个字节逻辑(即.1,.2,.3,等)。这可能吗?如果是这样,如何?
我需要从文本文件中删除重复的行,这在 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 方式执行此操作?
如何使用人类可读的文件大小排序、考虑大小标识符(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 文件夹。
有没有办法在 Windows 7 中按名称对文件夹和文件进行排序?
如果您查看此页面会更容易理解。
我希望我的文件夹和文件像第一个屏幕截图的 BEFORE 情况一样排列。
如果使用 Windows 资源管理器无法做到这一点,是否有任何我应该尝试的文件管理程序?
我已经尝试过 Total Commander。
我正在尝试使用带有 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) 我正在使用 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 …