переименование массивных файлов в unix с префиксом даты - PullRequest
0 голосов
/ 08 марта 2020

Привет, мне нужно масштабное переименование для таких файлов:

"Some Text Here 01 декабря 2019.pdf" в этот формат: "2019-12-01 Some Text Here.pdf"

«Некоторый текст здесь» может иметь различную длину и состоять из разных слов из файла в файл.

Текст, который я хочу преобразовать в цифры c, данные, которые я также хочу удалить («01 декабря 2019 ")

Как сделать массовое переименование всех файлов этого формата в каталоге?

1 Ответ

1 голос
/ 08 марта 2020
regex='^\(.*\)\s\([0-9]\{2\}\s\w\+\s[0-9]\{4\}\)\(\.[^.]*\)$' 
for old in *.pdf ; do
    old_name=`echo "$old" | sed -e "s/$regex/\1\3/"` 
    date_string=`echo "$old" | sed -e "s/$regex/\2/"`
    new="`date +'%Y-%m-%d' -d \"$date_string\"` $old_name"
    mv -v "$old" "$new"
done
...