LINUX.ORG.RU

Помогите с bash скриптом


0

1

Имеется каталог с кучей файлов (фотки). Фотки имеют имена типа: dsc2003-11-03T13:00:00-000001.jpg

Очень нужен bash скрипт который переименовал бы все эти файлы. Необходимо лишь убрать из имен файлов кусок -000001 (-000005, -000007 и т.д.)

Должны получиться имена файлов типа: dsc2003-11-03T13:00:00.jpg

Кому не сложно, помогите :)

★★

ls | while read file; do
    mv "$file" $(echo $file | sed 's/-[0-9]\{6\}\.jpg$/\.jpg/g')
done

1) можно использовать замену средствами bash, но у меня не очень хорошо получилось.

2) следует помнить, что при совпадении части до "-000001" не досчитаешься файлов (можно mv -i).

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

Да, это выражение в sed тоже кривое, но придумывать красивое нет настроения.

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

Спасибо огромное, вы меня спасли :)))

static ★★
() автор топика

ls | sed -r 's/(.*)-0+(\.jpg)/mv «&» «\1\2»/'

если то, что надо - добавьте e, и эта команда выполнится (команды)

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.