Автор Гілка: Як перенумерувати файли?  (Прочитано 1448 раз)

Відсутній klim

  • Графоман
  • ****
  • дописів: 287
  • Карма: +0/-0
  • The True Lamer. Beware of fakes.
Існує тека з парою сотень файлів, що мають назви: 0002 0003 0006 0008 і т.д. Підкажіть, будь-ласка, як їх перенумерувати, щоб вийшов ряд натуральних чисел?

Відсутній Re.

  • Загальний модератор
  • Літератор
  • *****
  • дописів: 1898
  • Карма: +1/-0
Re: Як перенумерувати файли?
« Відповідей #1 : 2010-06-28 14:40:03 »
krename, gwenrename …

Відсутній klim

  • Графоман
  • ****
  • дописів: 287
  • Карма: +0/-0
  • The True Lamer. Beware of fakes.
Re: Як перенумерувати файли?
« Відповідей #2 : 2010-06-28 21:23:56 »
Дякую. krename мене влаштувала. Спробував mrename, але, як на мене, там занадто лаконічний man.

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: Як перенумерувати файли?
« Відповідей #3 : 2010-06-29 14:55:00 »
for i in *; do mv $i `echo $i | sed 's/^0\+//'`; done

(mv $i $((i + 0)) чомусь не працює)
« Змінено: 2010-06-29 14:58:26 від tech »

Відсутній yvh

  • Дописувач
  • **
  • дописів: 56
  • Карма: +0/-0
Re: Як перенумерувати файли?
« Відповідей #4 : 2010-07-06 08:23:34 »
for i in *; do mv $i `echo $i | sed 's/^0\+//'`; done

(mv $i $((i + 0)) чомусь не працює)
Не працює, тому що через нуль в першій позиції імені файлу число i сприймається як елемент вісімкової системи числення. В якій, відповідно, не існує чисел, що використовують цифри 8 та 9. Тобто варіант (mv $i $((i + 0)) працюватиме лише за відсутності в іменах цих символів.

Треба так:
for i in *; do mv $i `echo "ibase=10; $i" | bc`; done
« Змінено: 2010-07-06 08:23:54 від egghead »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: Як перенумерувати файли?
« Відповідей #5 : 2010-07-06 11:47:50 »
You nailed it. Про вісімкову систему чомусь не подумав.