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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.