Bash shell – 用第二个字母对单词列表进行sorting?

我需要按字母顺序排列第二个字母的列表,我似乎无法find一个方法来做到这一点。

sorting

smokelessly toelike arsenous malabar antiperspirant hock nibbing paleographically goon 

sorting方式:

 malabar paleographically nibbing smokelessly antiperspirant hock toelike goon arsenous 

我已阅读有关sort命令,但它似乎没有让我这样做的function?

sort -kX.Y是你的朋友! X表示字段, Y表示字符。

 $ sort -k1.2 file malabar paleographically nibbing smokelessly antiperspirant hock toelike goon arsenous 

如果你想定义最后的排序位置,你可以使用

 sort -k1.2,Z file 

man sort

-k ,–key = KEYDEF

通过键排序; KEYDEF给出位置和类型

KEYDEF为F [.C] [OPTS] [,F [.C] [OPTS]]为开始和停止位置,其中F为字段号,C为字段中的字符位置; 两者都是原点1,停止位置默认为行结束。 如果-t和-b都不起作用,则字段中的字符将从前面的空格开始计数。 OPTS是一个或多个单字母顺序选项[bdfgiMhnRrV],它覆盖了该键的全局排序选项。 如果没有键,则使用整行作为键。