我认为这sort会将常见的前缀排序在一起,但这并不总是发生。以这个输入为例:
AT0S*eightieths
AT0S*eyetooth's
AT*ad
AT*Ad
AT*AD
AT*Eydie
AT*eyed
ATF*adv
ATF*ATV
ATF*edify
ATF*Ediva
ATFKT*advocate
ATFKTNK*advocating
ATFKT*outfought
ATFKTS*advocates
ATHT*whitehead
ATHT*Whitehead
AT*id
AT*I'd
AT*Ito
AT*IUD
ATJ*adage
ATNXNS*attention's
ATNXNS*attenuation's
ATNXNS*autoignition's
AT*oat
AT*OD
AT*outweigh
AT*owed
ATP0K*idiopathic
ATP*adobe
ATT*wighted
ATT*witted
ATT*wooded
AT*UT
AT*Uta
AT*wowed
AT*Wyatt
ATX*atishoo
Run Code Online (Sandbox Code Playgroud)
之后sort,我希望所有的AT*最终都集中在一个块中,但是当您通过 运行此数据时sort,输出==输入。这是为什么?我没有指定任何选项来忽略非字母字符或任何东西。只是sort dict > out。
我的版本sort来自coreutils 8.5-1ubuntu3.
小智 23
在我的情况下,设置 LC_ALL=C 恢复了传统的排序顺序。包:coreutils 版本:8.5-1ubuntu3
export LC_ALL=C
Run Code Online (Sandbox Code Playgroud)
小智 22
sort --version-sort filename
Run Code Online (Sandbox Code Playgroud)
这保留了数字的自然顺序。
根据其他人的评论提供一个简单的答案,这不会改变您的环境:
input_program | LC_COLLATE=C sort | output_program
Run Code Online (Sandbox Code Playgroud)
或者
LC_COLLATE=C sort < input_file > output_file
Run Code Online (Sandbox Code Playgroud)
或其组合。
| 归档时间: |
|
| 查看次数: |
15326 次 |
| 最近记录: |