แปลกการเรียงลำดับคำสั่งนำไปสู่ผิดผล[ปิด]

0

คำถาม

comm prompts ที่จัดเรียงเรียบร้อยข้อความไม่ได้จัดเรียงเรียบร้อยแล้ว sort ทำให้ผิดผลลัพธ์เดียวกันนั่นแหละ สำหรับตัวอย่างเช่น

printf 'G.EC\nGE.BO\nGE.DA\n' | sort

แสดงผล

GE.BOAB
G.ECH
GE.DAG

อีกตัวอย่างเช่นเป็นการส่งออกของ ls,

STATIONS_1800
stations.1800.txt
STATIONS.50d
STATIONS.D01
STATIONS.D16
stations.e2008.txt

ซึ่งควรจะเป็น

STATIONS_1800
STATIONS.50d
STATIONS.D01
STATIONS.D16
stations.1800.txt
stations.e2008.txt

การส่งออกของ env | grep 'LC\|LANG' นี่

LANGUAGE=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LANG=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8

มีเครื่องเดียวกัน LC* แล้ว LANG*ที่เรียงลำดับไอคอนทำงานสมบูรณ์แบบ

bash shell sorting
2021-11-23 16:52:33
2

คำตอบที่ดีที่สุด

1

ตั้ง LC_COLLATE=C

$ printf 'G.EC\nGE.BO\nGE.DA\n' | sort
GE.BO
G.EC
GE.DA

$ printf 'G.EC\nGE.BO\nGE.DA\n' | LC_COLLATE=C sort
G.EC
GE.BO
GE.DA
2021-11-23 17:19:18
1

จาก man sort:

   ***  WARNING  ***  The locale specified by the environment affects sort order.  Set `LC_ALL=C` to get the traditional sort order that uses native byte values.
2021-11-23 17:25:42

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่