Bash shell - 按第二个字母排序单词列表?

Vek*_*kta 4 linux sorting shell

我需要按字母顺序排列第二个字母的单词列表,我似乎无法找到一种方法.

未排序:

smokelessly
toelike
arsenous
malabar
antiperspirant
hock
nibbing
paleographically
goon
Run Code Online (Sandbox Code Playgroud)

排序方式:

malabar
paleographically
nibbing
smokelessly
antiperspirant
hock
toelike
goon
arsenous
Run Code Online (Sandbox Code Playgroud)

我已经读过关于sort命令的信息,但它似乎没有让我这样做的功能?

fed*_*qui 10

sort -kX.Y是你的朋友!X指的是列和Y字符.

$ sort -k1.2 file
malabar
paleographically
nibbing
smokelessly
antiperspirant
hock
toelike
goon
arsenous
Run Code Online (Sandbox Code Playgroud)

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

sort -k1.2,Z file
Run Code Online (Sandbox Code Playgroud)

来自man sort:

-k, - key = KEYDEF

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

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

  • 啊.你不喜欢GNU软件吗? (3认同)