问题标签 [gnu-sort]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Linux:GNU sort 不排序 seq
标题总结了它。
为什么这不起作用?
即使我不使用seq
:
甚至echo
直接放弃:
sorting - gnu 排序的意外结果
当我尝试对以下文本文件“输入”进行排序时:
用命令
输出正是输入。这是输出
:
它只是一个带有两列的制表符分隔文件。当我做
输出变为
这是我所期望的。但如果我这样做
输入没有任何变化,而我希望“test”在“test1”之前排序。最后,如果我这样做
我明白了
正如预期的那样。对此有合乎逻辑的解释吗?默认情况下 sort 到底应该做什么,例如:
?
我的排序版本:
sorting - 对数字子字段的 GNU `sort(1)` 感到困惑
我希望table
使用在第二个字段中找到的数值对空格分隔进行排序。我可以假设第二个字段总是 fooN 但 N 的长度是未知的:
我阅读man sort(1)
并玩了各种选择。在我的系统上,我找到了这条线:
去工作。
我的问题是为什么?
根据手册页:
那么为什么sort -n -k2.4
表格不起作用并且起作用sort -n -k2.5
呢?
linux - GNU sort - 用于比较的默认算法是什么?
我需要帮助理解 GNU 排序的默认算法。我假设它进行了字典排序,但是我发现了一些与此不对应的行为,例如以下字符串:
并使用 sort 对它们进行排序echo 'stuff' | sort
这是我得到的结果:
我不知道为什么出现在两者alex0
之间alexa
alex.}
alex.a
谁可以给我解释一下这个?
linux - Linux 使用“嵌套”字段排序
我有一个大文件,其中包含以下格式的行:
我要排序field4
。但是,field4
它本身是这样“细分”的:
排序的命令field4
是
所以我要做的是分割每一行:
,然后分割第四个字段_
并对其执行指定的排序。是否有捷径可寻?
可以在此处找到一小部分数据。
linux - 如何对二进制格式的数字数据使用 GNU 排序?
有没有办法使用 GNU Coreutils 对存储在二进制文件中的 64 位数字进行排序?如果文件不是二进制文件,那么sort -n
就是解决方案,但我没有找到任何将它与二进制数据一起使用的选项。
文件非常大(~100GB),如果可能的话,我不想制作它的文本(非二进制)副本。
数据样本:
$ xxd file
00292e0: 4036 1eb7 6888 d319 de6b 7402 9ca9 f116 @6..h....kt.....
00292f0: db68 7f05 199f 9d36 cf01 cb28 e49f 1116 .h.....6...(....
0029300: 0c7c 8b55 2963 ef0c 277a f2b0 38d7 2b19 .|.U)c..'z..8.+.
0029310: c83b 2614 4327 d838 820c 1bb8 444f 1731 .;&.C'.8....DO.1
0029320: 1695 cab3 cd12 092a 0691 d7e4 5fcc b01d .......*...._...
0029330: b12b 7c1b a209 7c1c 568a 125c 541c d334 .+|...|.V..\T..4
0029340: 09a3 ecbc 8370 e205 9265 7759 a378 4e2f .....p...ewY.xN/
csv - 使用sort gnuwin32对txt文件中的数字进行排序,每行第二个值优先于第一个
我正在编写一个 .bat 文件来对带有坐标的文本文件进行排序:
我的代码:
使用我的代码输出,如您所见,第一列中的负值从高到低排序:
sorting - 仅当存在第二列时,Unix 排序才会发出超出预期顺序的行
我有一个包含两列的文件。第一列中有两个下划线分隔的数字,我想按此列按字典顺序对文件进行排序。现在,如果没有第二列,默认排序正是我想要的:
但是如果我添加第二列(这应该与排序无关!):
甚至在其中一行中添加第二列:
我如何对第一列进行排序,真的吗?
linux - 试图理解 linux 中的 sort utilty
我有一个名为 a.csv 的文件。其中包含
运行此命令后sort -k1 -d -t "," a.csv
结果是
这是出乎意料的,因为10001 should come first than 100010
试图理解为什么这会发生很久。但无法得到任何答案。
sorting - gnu-sort - 当它说合并选项“不排序”时,手册是什么意思
我正在尝试对一个太大而无法放入内存的文件进行排序。选项 -m 下的 gnu sort 说明:merge already sorted files; do not sort
. 我正在努力理解这一点的含义,以确保排序完成我想要的。这篇文章(在 Pandas 中对大型数据集进行排序) 建议结合使用 gnu split 和 gnu sort 来完成这样的任务,方法是首先将文件分成适合内存的较小部分,分别对它们进行排序,然后重新组合。到目前为止,我的实验似乎表明这个程序确实有效。尽管如此,我对手册中合并选项的描述感到困扰,该描述说它没有排序。出于我的目的,有必要对大文件进行完全排序,而不仅仅是本地排序的较小部分的串联。虽然我已经在小例子上测试过这个过程并且它似乎有效,但是手册让我对将它应用到我的实际情况缺乏信心,
要给出 MWE,请考虑我要排序的这个制表符分隔文件:
我尝试了以下操作:
这是一次对整个文件进行排序时的“正确”解决方案(这在我的实际用例中是不可行的)。
如果我尝试将文件分成几部分,然后立即使用 -m 选项,则会得到不正确的结果:
看起来已经发生的是,gnu sort 刚刚考虑了两个单独的部分,并根据彼此的第一个值对它们进行了排序。因此,它在这个成品中将第二块放在了第一位,但没有进行其他排序。
或者,如果我遵循此处提倡的程序(在 pandas 中对大型数据集进行排序),即首先对各个部分进行排序然后合并,我似乎确实得到了正确的结果:
对我来说,症结在于,如果片段文件很大,仍然需要进行大量计算才能将它们合并到一个正确排序的文件中。因此,我很难理解如何将如此重要的排序数量描述为声称它“不排序”的操作的结果。
谁能告诉我为什么手册会这样写?为什么以及如何确信 gnu sort 在使用 merge 选项时会可靠地执行它所声称的操作?手册文本是否以某种方式暗示了此过程无法达到预期结果的某些情况?