在 Unix 中按升序排列文件(不是基于时间戳)

Rah*_*ael 3 ls sort

如何以升序方式列出文件,而不是基于时间戳。

例如:- 原始列表

A_2001
A_2002
A_2003
A_2004
B_2001
B_2002
B_2003
B_2004
Run Code Online (Sandbox Code Playgroud)

所需的输出:-

A_2001
B_2001
A_2002
B_2002
A_2003
B_2003
A_2004
B_2004
Run Code Online (Sandbox Code Playgroud)

Arc*_*mar 9

尝试

ls ?_???? | sort -t_ -k2,2n -k1,1
Run Code Online (Sandbox Code Playgroud)

在哪里

  • -t_ 表示 _ 是分隔符
  • -k2,2 -k1,1 表示按 k 2 和键 1 排序