Пакетные файлы переименовывают файлы для перемещения последовательности с конца для начала

Вы можете сделать:

set --; src=014387650 OPTIND=1 tgt=
while   getopts : na -"$src"
do      tgt=$tgt$OPTARG
        set "$@" "A[$#]=$tgt"
done;   printf   %s\\n "$@"

A[0]=0
A[1]=01
A[2]=014
A[3]=0143
A[4]=01438
A[5]=014387
A[6]=0143876
A[7]=01438765
A[8]=014387650
1
07.11.2018, 00:22
2 ответа
for num in {0..45}; do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done

Если число является переменным, вы можете сделать что-то вроде:

for num in $( seq 1 ${last-10} ); do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done

Если lastне задано, будет использоваться значение по умолчанию 10. Это означает, что вы можете включить его в сценарий :

.
last="${1-10}" # $1 is the first parameter given; use a default 
               # of 10 if not provided a value
for num in $( seq 1 $last ); do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done
2
27.01.2020, 23:15

С оболочкой zsh:

autoload zmv # best in ~/.zshrc
zmv -n '(*)-(<->).jpg' 'th$1-$2.jpg'

(удалить -nкогда счастлив ).

3
27.01.2020, 23:15

Теги

Похожие вопросы