LINUX.ORG.RU

Переименовать файлы нумерацией 0001, 0002, 0003 ... 0888 и т.д

 ,


0

2

Помогите с командой, никак не могу справиться с форматом, получается сухие три нуля в начале - 0001... 000888.

Заранее благодарен.

UPDATE.

Выделяю ПКМ файлы, выбираю скрипт и он 159 файлов переименовывает на 0001 до 0159.

Спасибо за помощь

x=10001;
for file in "$@"; do
	mv -v "$file" ${x:1}.${file##*.}; 
	(( x++ )); 
done

Ответ на: комментарий от anonymous

понятно сказал ему надо отрезать три нуля

Нет на оба два утверждения ;-)
Ему нужно получить последовательность четырехзначных чисел с ведущими нулями: 0001, 0002, .., 0009, 0010, 0011, .., 0099, 0100, .., 0888, .., 0999, 1000, ...

bormant ★★★★★ ()
Ответ на: комментарий от bormant

решение в лоб) возможно это можно сделать лучше вынеся цикл в функцию и запустить функцию с рекурсией.

#!/bin/bash
a=0
b=0
c=0
d=0

while [ $a -le 9 ]; do
    
    while [ $b -le 9 ]; do
    
        while [ $c -le 9 ]; do

            while [ $d -le 9 ]; do

                echo $a$b$c$d
                ((d++))
                
            done
        
            ((c++))
            d=0
        done
    
        ((b++))
        c=0
    done
    
    b=0
    ((a++))
done

nerve ★★ ()