【发布时间】:2020-02-19 09:32:39
【问题描述】:
我有一些文件。当我列出它们时,我得到了订单:
frame0001i0002.png
frame0001.png
frame0002i0003.png
frame0002.png
frame0003i0004.png
frame0003.png
frame0004.png
frame0005.png
frame0006.png
我曾假设frame0001.png 会在frame0001i0002.png 之前,因为我需要按顺序对它们进行操作:
frame0001.png
frame0001i0002.png
frame0002.png
frame0002i0003.png
frame0003.png
frame0003i0004.png
frame0004.png
frame0005.png
frame0006.png
我需要重命名它们以按我想要的顺序显示吗?
最后我想把他们的名字改成:
frame0001.png
frame0002.png
frame0003.png
frame0004.png
frame0005.png
frame0006.png
frame0007.png
frame0008.png
frame0009.png
并按照上面单元格的顺序。
【问题讨论】:
-
你用什么来列出它们?如果我
cd到父目录并运行for file in *.png; do echo "${file##*/}"; done它会按所需的顺序列出它们。 -
同样使用
find和while循环来创建一个数组。例如。files=(); while read -rd ''; do files+=("${REPLY}"); done < <(find . -name '*.png' -print0)- 数组中的每个文件/成员都按所需顺序索引。您可以通过随后运行declare -p files或printf '%s\n' "${files[@]}"来列出它们。