如何按文件名中的特定 'field' 排序

How to sort by specific 'field' in filename

我的文件夹中有文件,文件名的格式为:

2352_GF_somerandomstring.txt,即someNumber_twoletters_somestring.

ls 上使用标志,我能达到的最好效果是对 sort.

按不同的标准进行类似排序

我想要的是按 'twoletters' 对列表进行排序。 IE。忽略前缀编号并按 'GF' 部分排序(在示例中),但仍显示完整的文件名(即包括前缀编号)。

我得到的最接近的是(没有写完整的脚本): ls | cut -d '_' -f2- |sort

但是剪掉的部分把前面的都去掉了,还需要看

关于如何以简单的方式做到这一点有什么想法吗? (希望是 oneliner)。

像这样: ls | sort -t '_' -k 2

-t 是分隔符,-k 是列