$ 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)