标签: gnu-sort

来自gnu排序的意外结果

当我尝试对以下文本文件'input'进行排序时:

test1 3   
test3 2
test 4
Run Code Online (Sandbox Code Playgroud)

用命令

sort input
Run Code Online (Sandbox Code Playgroud)

输出正好是输入.这是输出

od -bc input
Run Code Online (Sandbox Code Playgroud)

:

0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
          t   e   s   t   1  \t   3  \n   t   e   s   t   3  \t   2  \n
0000020 164 145 163 164 011 064 012
          t   e   s   t  \t   4  \n
0000027
Run Code Online (Sandbox Code Playgroud)

它只是一个带有两列的制表符分隔文件.当我做

sort -k 2
Run Code Online (Sandbox Code Playgroud)

输出变为

test3 2
test1 3
test 4
Run Code Online (Sandbox Code Playgroud)

这是我所期待的.但如果我这样做

sort -k 1
Run Code Online (Sandbox Code Playgroud)

关于输入没有任何变化,而我希望'test'在'test1'之前排序.最后,如果我这样做 …

unix sorting gnu-sort

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

gnu sort - 默认缓冲区大小

我已经阅读了gnu sort 的完整文档并在线搜索但是我找不到--buffer-size选项的默认值(它决定了程序在运行时使用的系统内存量).我猜它是基于总系统内存以某种方式确定的?(或者在程序开始执行时可用的内存?).我怎么能确定这个?

更新:我已经尝试了一下,似乎当我没有指定一个特定的--buffer-size值时,它最终使用非常少的ram,因此进展非常缓慢.虽然更好地了解究竟是什么决定了这种行为,但这会很好.

gnu-sort

5
推荐指数
2
解决办法
1366
查看次数

GNU sort - 用于比较的默认算法是什么?

我需要帮助理解 GNU 排序的默认算法。我认为它进行了字典排序,但是我发现了一些与此不符的行为,例如以下字符串:

alex.
alex.a
alex.Z
alexa
alex0
alexZ
alex.~
alex
alex.|
alex.}
alex.abc
Run Code Online (Sandbox Code Playgroud)

并使用类似的排序在外壳上对它们进行排序 echo 'stuff' | sort

这是我得到的结果:

alex
alex.
alex.~
alex.|
alex.}
alex0
alexa
alex.a
alex.abc
alexZ
alex.Z
Run Code Online (Sandbox Code Playgroud)

我想不通为什么alex0alexa之间出现在alex.}alex.a

谁可以给我解释一下这个?

linux sorting gnu gnu-sort

2
推荐指数
1
解决办法
2277
查看次数

Linux:GNU排序不排序seq

标题总结了它.

$ echo `seq 0 10` `seq 5 15` | sort -n
0 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

即使我不使用seq:

echo '0 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 10 11 12 13 14 15' | sort -n
0 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 …
Run Code Online (Sandbox Code Playgroud)

sorting bash gnu-sort

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

按分隔符对文件名进行主要和次要数字排序

我有一些像这样命名的文件:

S241R39.txt
S241R40.txt
S241R41.1.txt
S241R41.2.txt
S241R42.1.txt
S241R42.2.txt
Run Code Online (Sandbox Code Playgroud)

我希望能够按此顺序对它们进行排序:

S241R39.txt
S241R40.txt
S241R41.1.txt
S241R42.1.txt
S241R41.2.txt
S241R42.2.txt
Run Code Online (Sandbox Code Playgroud)

在这里,我41.1想来之前42.1,42.1之前来41.2

在没有结束的文件中.1或者.2正确地对我的文件进行排序:

ls -1 *.txt | sort -V

有没有人有任何建议我如何调整这个给我我想要的输出?

gnu-sort

-1
推荐指数
1
解决办法
41
查看次数

标签 统计

gnu-sort ×5

sorting ×3

bash ×1

gnu ×1

linux ×1

unix ×1