如何按文件名中的特定 '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 是列
我的文件夹中有文件,文件名的格式为:
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 是列