nixp.ru v3.0

29 мая 2017,
понедельник,
18:20:29 MSK

DevOps с компанией «Флант»
kir202 написал 9 декабря 2006 года в 20:26 (284 просмотра) Ведет себя неопределенно; открыл 2 темы в форуме, оставил 7 комментариев на сайте.

Нужна помощь в написании следующего скрипта.

В папке имеются файлы (a.txt, b.txt, c.txt и тд.) после выполнения скрипта нужно, чтобы файлы стали такого вида (1.a.txt, 2.b.txt, 3.c.txt и тд.). Т.е. вставить счетчик в имена фалов.

Может кто-нибудь помочь?

Дмитрий Шурупов


bash $ x=0; for i in `ls`; do let x=$x+1; mv $i $x'.'$i; done
mylon


#!/bin/bash
n=0
for i in *
do
rename s/$i/$n$i/ *
n=`expr $n + 1`
done

It’s work =))

А вообще man rename и regex

kir202
Dmitry Shurupov

bash $ x=0; for i in `ls`; do let x=$x+1; mv $i $x'.'$i; done

Как задать папку из которой беруться файлы?, т.е. сделать так чтобы скрипт брал файлы не из той папки откуда запускается, а например из папки лежащей в этой директории.

Дмитрий Шурупов

А вы вообще с шеллом знакомы или не очень?

Например:

x=0; dir=/my/path/to/files; for i in `ls $dir`; do let x=$x+1; mv $dir/$i $dir/$x'.'$i; done
kir202

Всё понял, а то я пробывал по другому, теперь всё получилос. Благодарю за помощь!!!