Подсчитать количество файлов и что-то с ними сделать (в моем случае с помощью JHead)

Подсчитать количество файлов и что-то с ними сделать (в моем случае с помощью JHead)

У меня есть папка с файлами 1.JPG, 2.JPG, ..., 12.JPG

Есть ли выражение для обработки всех файлов одновременно? Я хочу использовать команду JHead, но думаю, что есть общее решение.

Спасибо!

решение1

Если требуемая обработка заключается в переименовании 1.JPG в MyPicture1-320x480.jpg, а 2.JPG в MyPicture2-320x480.jpg и т. д., то при использовании оболочки Bash можно перейти в каталог, содержащий файлы, и использовать что-то вроде:

i=0; for n in *.JPG; do mv "${n}" "MyPicture${n/.JPG/-320x480.jpg}"; i=$((i+1)); done; echo "Processed ${i} files."

(Все вышеперечисленное можно ввести в одной командной строке.)

Или, если вы хотите оформить это в виде скрипта, его будет легче читать и понимать, если разделить его на несколько строк:

# reset counter variable if you want to count the number of files processed
i=0

# loop for all files in current working directory that end with ".JPG"
for n in *.JPG
do
  # rename (move) each file from the original name (${n} is generally safer than $n)
  # to a new name with some text before the original name and then with the end of
  # the original name (".JPG") replaced with a new ending
  mv "${n}" "MyPicture${n/.JPG/-320x480.jpg}"

  # increment the counter variable
  i=$((i+1))
done
# display the number of files processed.
echo "Processed ${i} files."

Если желаемая вами обработка отличается от этой, возможно, вам придется отредактировать свой вопрос, чтобы предоставить более подробную информацию.

Связанный контент