LINUX.ORG.RU

Помогите гуманитарию написать скрипт...


0

0

Дано: директория с файлами
Требуется написать скрипт для пакетного переименования файлов по схеме
????????.???->FILE-YYMMDD-HHMMSS.???
где YYMMDD, HHMMSS генерируются исходя из времени последней модификации файла...
Буду признателен за помощь

anonymous

Это, пожалуй, задача начального уровня. Самого разнаиначальнейшего. Если решишь ее сам, почувствуешь, каково оно.

anonymous
()

Расскажи зачем тебе это нужно, если это не большая гуманитарная тайна.

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

Типа небольшой каталогизации исходников фотографий, по наиболее важному для этих фотографий признаку.

anonymous
()

google://advanced bash scripting howto

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

Я так понял, прога работает только с JPG... а у меня исходники RAW

anonymous
()

При условии, что в названиях файлов нет как минимум табов

IFS=$'\n';
for f in `find -type f -printf '%p\tFILE-%Ty%Tm%Td-%TH%TM%TS\n'`; do 
 mv "`cut -f 1 <<< "$f"`" \
    "`sed 's,/\([^/]*\(\.[^/.]*\)\|[^/]*\)\t\(.*\),/\3\2,' <<< "$f"`";
done

Рекомендую сначала проверить, хотя бы заменив mv на echo.
Ещё рекомендую всё же прочитать "ссылку" TuxR.

Jini ★★
()

Я не силен в скриптописании, но мне самому стала интересна эта задачка. Вот, что в результате получилось

# !/bin/bash
# Преобразование ????????.???->FILE-YYMMDD-HHMMSS.???

for f in "$PWD"/*
do
# Получаем сгенированное из даты имя
nn="FILE"-`date --reference="$f" +%Y%m%d`-`date --reference="$f" +%M%S`
# Получаем расширение файла
fe=`expr "$f" : ".*\([.][^./]*\)" \| " "`

mv "$f" "$nn$fe"
done

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

Пишите проще, у date можно все записать в одну строку форматирования

date --reference="$f" '+%Y%m%d-%M%S'`

А расширение файла определять так

fe=${f##*.}; mv "$f" "$nn.$fe"

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

Может быть, дату нужно смотреть не текущую, а дату создания файла?

//не автор темы

anonymous
()

Спасибо за образцы... буду изучать и надеюсь внедрю в работу

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