Bash 按数字字段(子字符串)对文件名排序
我在文件夹A1中有一组文件,具有以下命名约定:Bash 按数字字段(子字符串)对文件名排序,bash,sorting,Bash,Sorting,我在文件夹A1中有一组文件,具有以下命名约定: MCU1_0001_01 MCU2_0002_01 MCU1_0001_02 MCU2_0002_02 MCU1_0003_01 MCU2_0003_02 中间的4位数字继续增加直到34的值,而MCU之后的值在1和2之间交替,最后在字符串末尾的两个数字也是如此。 尽管如此, 我想首先根据中间值对这些文件进行排序,然后是字符串末尾的值,第二个。 注意,我对排序MCU后面的值也不感兴趣 我该怎么做 这就是我一直在尝试的 ls MCU[12]_0
MCU1_0001_01
MCU2_0002_01
MCU1_0001_02
MCU2_0002_02
MCU1_0003_01
MCU2_0003_02
中间的4位数字继续增加直到34的值,而MCU之后的值在1和2之间交替,最后在字符串末尾的两个数字也是如此。 尽管如此, 我想首先根据中间值对这些文件进行排序,然后是字符串末尾的值,第二个。 注意,我对排序MCU后面的值也不感兴趣
我该怎么做 这就是我一直在尝试的ls MCU[12]_00[0-9][0-9]_0[12] sort -t
在u上拆分字段并按字段2到3排序:
有关-t/-field separator=SEP和-k/-key=KEYDEF的说明,请参阅
如果字段不是零填充的,则希望使用-n进行数字排序:
sort -t_ -k2n -k3n
这将按第二个字段的数值进行排序,然后按第三个字段的数值进行排序。要调试排序如何解释字段,请使用-debug标志运行
sort -t_ -k2n -k3n