我必须使用sort
对这一行进行排序:
$ echo -e "mariadb-server-10.0\t2\nmariadb-server\t2\nmariadb-server-core-10.0\t2" | sort
mariadb-server-10.0 2
mariadb-server 2
mariadb-server-core-10.0 2
但我不明白为什么它在分拣时不起作用:
$ echo -e "mariadb-server-10.0\nmariadb-server\nmariadb-server-core-10.0" | sort
mariadb-server
mariadb-server-10.0
mariadb-server-core-10.0
完美运作:
由于字段由制表符分隔,我已尝试sort -t$'\t' -k1
,但它不会改变任何内容。有什么建议吗?
答案 0 :(得分:2)
一个建议,是的:
LC_ALL=C sort -d <<EOF
mariadb-server-10.0 2017-04-11 19:09:26.934255687 +0200
mariadb-server 2017-04-11 19:09:46.814225367 +0200
mariadb-server-core-10.0 2017-04-11 19:08:43.304322172 +0200
EOF
给出
mariadb-server 2017-04-11 19:09:46.814225367 +0200
mariadb-server-10.0 2017-04-11 19:09:26.934255687 +0200
mariadb-server-core-10.0 2017-04-11 19:08:43.304322172 +0200
(这是预期的结果)。 但是,对不起,没有解释。对我来说,语言环境总是导致无法解释的行为。