相关疑难解决方法(0)

UNIX排序忽略空格

给定一个文件txt:

ab
a c
a a
Run Code Online (Sandbox Code Playgroud)

打电话时sort txt,我获得:

a a
ab
a c
Run Code Online (Sandbox Code Playgroud)

换句话说,它不是正确的排序,它有点删除/忽略空白!我希望这是行为,sort -i但无论是否有-i旗帜都会发生.

我想获得"正确"的排序:

a a
a c
ab
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

linux sorting shell locale

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

bash排序异常的顺序.空间问题?

很多时间都进入了一个bug,它追溯到排序......

有人解释为什么我得到这个未排序的结果,当bash文档告诉我分隔符是从白色到非白色字符的转换?第一个字段不应该排序吗?

>sort myfile.txt
10_10000000 19
10_10000001 20
10_10000002 19
10_10000003 17
10_10000004 16
10_1000000 44
10_10000005 16
10_10000006 16
10_10000007 17
10_10000008 16
Run Code Online (Sandbox Code Playgroud)

当然使用+0 -1给了我预期的结果:

>sort +0 -1 myfile.txt
10_1000000 44
10_10000000 19
10_10000001 20
10_10000002 19
10_10000003 17
10_10000004 16
10_10000005 16
10_10000006 16
10_10000007 17
10_10000008 16
Run Code Online (Sandbox Code Playgroud)

一些metainfo:

>type sort
sort is hashed (/bin/sort)
Run Code Online (Sandbox Code Playgroud)

我在用

sort (GNU coreutils) 5.97


>locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

sorting bash

7
推荐指数
2
解决办法
2905
查看次数

标签 统计

sorting ×2

bash ×1

linux ×1

locale ×1

shell ×1