touch foo_{1..20}_bar.ext # simplified set
shopt -s extglob # more specific globbing
mkdir hold # a place to avoid naming collisions
mv *_+([0-9])_*.ext hold/ # make sure this grabs the right set
declare -i cnt=0 # reinitialize this is you run it again!
lst=( $( printf "%s\n" hold/* |
sort -t_ -k2,2rn ) ) # reverse numeric order on the key
for f in "${lst[@]}"
do n="${f#hold/}" # strip subfolder to move them *back*
mv "$f" "./${n/_+([0-9])_/_$((++cnt))_}" # replace/reorder the numbers
done
1条答案
按热度按时间ecfdbz9o1#
做一些假设-
我用
echo
运行了它: