The sort
utilitas di Ubuntu 10.04 (Lucid) selalu Urut berdasarkan kasus-sensitif, seperti jika Anda menentukan --ignore-case
untuk itu.
The two sort just give the same result:
echo -e "c\nb\nB\na" | sort
echo -e "c\nb\nB\na" | sort --ignore-case
Tetapi kadang-kadang saya ingin menyortir berdasarkan huruf besar-kecil, jadi huruf besar datang lebih dulu, kemudian huruf kecil. Apa itu mungkin?
echo $'B\nÄ\nb\na' | LC_COLLATE=C sort
. Bukankah fakta bahwa GNUsort
dengan non-C
lokal selalu melakukan penyortiran case-INsensitive dianggap sebagai bug ?C.UTF-8
locale (LC_COLLATE=C.UTF-8
) akan mengurutkan huruf besar-kecil, sambil memperlakukan karakter UTF-8 non-ascii "normal". Sayangnya, itu tidak tersedia di hulu di glibc dan hanya ditambal oleh Debian, Ubuntu dan turunannya.Menariknya, belum ada pemesanan jenis lain yang tersedia seperti ini:
yang menempatkan huruf besar sebelum huruf kecil yang sesuai.
Berikut ini adalah perbandingan dari output mereka (saya menambahkan "d" dan "D") di
en_US.UTF-8
lokal (kecuali di mana ditimpa):echo -e "d\nD\nc\nb\nB\na" | sort
echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort --ignore-case
Keluaran:
sumber
sort
v5.93
(dilengkapi dengan OS X 10.9.3 (!)) Danv8.13
, tetapi TIDAK div8.21
danv8.22
. Saya kira hasil 2. dan 4. masih bisa dianggap setara (tapi itu jelas akan berubah dengan penambahan karakter asing).