====== 有点想把 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)