2

У меня есть куча изображений с именем:

1.jpg
2.jpg
317.jpg
317 (2)a.jpg
etc.

В моем файловом браузере (Nautilus) они отображаются в правильном числовом порядке. Однако в Brasero, когда я заказываю их, он заказывает их странным образом (правильно, но не так, как я хочу). Они заказывают так:

1
10
100
101
2
20
200
201
201a
3
3a
30
300
301
.
.
.

Я хочу переименовать их так, чтобы они отображались в правильном алфавитно-цифровом порядке, поэтому я получаю следующее:

1
2
3
3 (2)
3 (2)a
4
5
.
.
.
50
50 (2)
.
.
.
317 (2)a
.
.
.

Вопросы:

  1. Может кто-нибудь порекомендовать соглашение об именовании, чтобы переименовать все эти файлы, чтобы они были в правильном порядке (например, камеры используют IMG_xxxx.JPG, что приятно)?

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

Это стандартные файлы JPEG, поэтому их упорядочение по дате в данных EXIF может работать. Мне просто нужны правильные команды или графический интерфейс - я не против - чтобы привести их в порядок.

Переименование их по дате, вероятно, будет достаточно хорошо?

3 ответа3

4

Для переупорядочения по дате см. Здесь ("Переименовать JPG только по метке времени"). Получил, что через Googling "переименовать JPEG JPEG Exif".

3

Прикладная программа просматривает список файлов, чтобы решить, как их отсортировать. Очевидно, Nautilus использует "естественный порядок" для числовых файлов, в то время как другие ваши инструменты используют стандартные компьютерные алгоритмы сортировки, которые сортируют по "словарному порядку" ("a" короче "aardvark", поэтому "a" идет первым, "b" следует после ») aardvark ", потому что" b "выше, чем" a "." 1 "короче, чем" 100 ", поэтому" 1 "идет первым." 2 "идет после" 100 ", потому что" 2 "выше, чем" 1 ").

Вполне возможно, что все, что вы вставите в этот компакт-диск, будет игнорировать все, что вы пытаетесь сделать, чтобы заставить файлы сортировать так или иначе. У меня есть mp3-плеер, который сортирует все песни в порядке их добавления на устройство, несмотря ни на что. Если программа, читающая компакт-диск, сортирует по имени файла (по моему опыту, большинство программ выполняет сортировку по словарю по имени файла), вы можете принудительно выполнить как естественную, так и словарную сортировку для сортировки файлов одинаково, добавив имена файлов с достаточным количеством нулей, чтобы сделать числовые части из имен файлов все то же самое:

00001.jpg
00002.jpg
00100.jpg
00100 (01).jpg
00100 (01a).jpg
00100 (13).jpg

Тогда и естественная сортировка, и сортировка по словарю приведут к одному и тому же результату. Автоматизировать этот процесс будет сложно. Если вы удалите все скобки, пробелы и буквы из имен файлов, следующий скрипт будет дополнять все до 5 цифр (для более или менее нулей измените 5 в printf %05d $n:

#!/bin/bash
set -e
for x in *; do
  e=${x##*.}
  n=${x%.*}
  nn=`printf %05d $n`
  mv "$x" "$nn.$e"
done

Это приведет к ошибке, если в именах файлов есть что-то кроме цифр. Я не могу думать ни о чем, кроме как переименовывать по одному или делать что-то вроде rename s/^/0000/ ?.jpg rename s/^/000/ ??.jpg rename s/^/00/ ???.jpg и так далее, и это все равно не будет хорошо работать с дополнительными вещами в конце ваших имен файлов.

Если вы хотите автоматизировать преобразование, вы, вероятно, в конечном итоге полностью переименуете их во что-то другое (например, отметки времени, как предлагал другой автор, если отметка времени записана в порядке убывания (год, месяц, день, минута-секунда). сортируйте правильно в порядке словаря, но если есть два файла с одинаковой временной меткой, вы можете потерять один, если вы (или ваша программа обработки exif) не будете осторожны.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .