mirror of
https://github.com/Theodor-Springmann-Stiftung/KGPZ.git
synced 2025-10-28 16:45:31 +00:00
59 lines
1.7 KiB
Bash
59 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# Create a new directory for the renamed files
|
|
mkdir -p renamed_files
|
|
|
|
# Copy all jpg files to the new directory
|
|
cp *.jpg renamed_files/
|
|
|
|
# Change to the new directory
|
|
cd renamed_files
|
|
|
|
# Remove the first two files (blank pages)
|
|
rm 1765-01-04_1.jpg 1765-01-04_2.jpg
|
|
|
|
# Initialize variables
|
|
issue_number=0
|
|
page_number=1
|
|
global_page_number=1
|
|
|
|
# Function to pad numbers with leading zeros
|
|
pad() {
|
|
printf "%03d" $1
|
|
}
|
|
|
|
# Sort files by name (which will sort them chronologically)
|
|
for file in $(ls -1 1765-*.jpg | sort); do
|
|
# Extract date from filename
|
|
date=$(echo $file | grep -oP '\d{4}-\d{2}-\d{2}')
|
|
|
|
# If it's a new date, increment issue number and reset page counter
|
|
if [[ $date != $current_date ]]; then
|
|
current_date=$date
|
|
issue_number=$((issue_number + 1))
|
|
page_number=1
|
|
pages_in_issue=$(ls -1 $date*.jpg | wc -l)
|
|
fi
|
|
|
|
# Create new filename based on number of pages in the issue and the issue number
|
|
if [ $issue_number -eq 27 ] || [ $pages_in_issue -le 4 ]; then
|
|
new_name="1765-$(pad $issue_number)-$(pad $global_page_number).jpg"
|
|
global_page_number=$((global_page_number + 1))
|
|
else
|
|
if [ $page_number -le 2 ] || [ $page_number -gt $((pages_in_issue - 2)) ]; then
|
|
new_name="1765-$(pad $issue_number)-$(pad $global_page_number).jpg"
|
|
global_page_number=$((global_page_number + 1))
|
|
else
|
|
new_name="1765-$(pad $issue_number)b-$(pad $((page_number - 2))).jpg"
|
|
fi
|
|
fi
|
|
|
|
# Rename file
|
|
mv "$file" "$new_name"
|
|
|
|
# Increment page number
|
|
page_number=$((page_number + 1))
|
|
done
|
|
|
|
echo "Files have been renamed in the 'renamed_files' directory."
|