用户工具

站点工具


blog:20240622_locale

有点想把 locale 设为 C.UTF-8

一直以来都在用 en_US.UTF-8, 但是用 sort, comm 总是怪怪的.

Linux

用 en_US, 排序会忽略符号

$ printf "a.d\na_c\nab" | sort
ab
a_c
a.d

用 C

$ printf "a.d\na_c\nab" | sort
a.d
a_c
ab

用 awk 排序, 不依赖 locale

$ printf "a.d\na_c\nab" | awk '{if ($0!="") {a[$0]}} END {asorti(a); for (k in a) {print a[k]}}'
a.d
a_c
ab

FreeBSD

用 en_US

$ printf "a.d\na_c\nab" | sort
a_c
a.d
ab

用 C

$ printf "a.d\na_c\nab" | sort      
a.d
a_c
ab

用 gawk 排序和 Linux 一样 (FreeBSD 自身的 awk 不支持 asorti)

blog/20240622_locale.txt · 最后更改: 2024/06/22 01:51 由 Hshh