Add All existing
This commit is contained in:
80
episode_numbers
Executable file
80
episode_numbers
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
LOG_DIR="/home/honney/.log"
|
||||
LOG_FILE="${LOG_DIR}/rename.log"
|
||||
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
reverse_mode=false
|
||||
|
||||
if [[ "$1" == "reverse" ]]; then
|
||||
reverse_mode=true
|
||||
elif [[ -z "$1" ]]; then
|
||||
echo "Usage: $0 {start_number} | reverse"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if $reverse_mode; then
|
||||
if [[ ! -f "$LOG_FILE" ]]; then
|
||||
echo "No log file found. Nothing to reverse."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
current_dir=$(realpath .)
|
||||
match_start=$(grep -n "=== $current_dir ===" "$LOG_FILE" | cut -d: -f1)
|
||||
|
||||
if [[ -z "$match_start" ]]; then
|
||||
echo "No entries for this directory in the log."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sed -n "$((match_start + 1)),/^===/p" "$LOG_FILE" | grep -v "^===" | while IFS="|" read -r original renamed; do
|
||||
if [[ -e "$renamed" ]]; then
|
||||
mv -v "$renamed" "$original"
|
||||
else
|
||||
echo "Warning: '$renamed' not found. Skipping."
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Reversal complete."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Start of normal renaming
|
||||
start_number=$1
|
||||
counter=0
|
||||
|
||||
extensions=("mkv" "mp4" "avi" "mov" "jpg" "png")
|
||||
|
||||
files=()
|
||||
for ext in "${extensions[@]}"; do
|
||||
while IFS= read -r -d '' file; do
|
||||
files+=("$file")
|
||||
done < <(find . -maxdepth 1 -type f -iname "*.${ext}" -print0)
|
||||
done
|
||||
|
||||
IFS=$'\n' sorted_files=($(printf '%s\n' "${files[@]}" | sort -rz | tr '\0' '\n'))
|
||||
|
||||
# Log the current session
|
||||
current_dir=$(realpath .)
|
||||
echo "=== $current_dir ===" >> "$LOG_FILE"
|
||||
|
||||
for file in "${sorted_files[@]}"; do
|
||||
new_number=$(printf "%02d" $((start_number + counter)))
|
||||
extension="${file##*.}"
|
||||
base_name="E${new_number}"
|
||||
new_name="${base_name}.${extension}"
|
||||
suffix=1
|
||||
|
||||
# Avoid overwriting
|
||||
while [ -e "$new_name" ]; do
|
||||
new_name="${base_name}_$suffix.${extension}"
|
||||
((suffix++))
|
||||
done
|
||||
|
||||
mv "$file" "$new_name"
|
||||
echo "${file}|${new_name}" >> "$LOG_FILE"
|
||||
((counter++))
|
||||
done
|
||||
|
||||
echo "Renaming complete! Changes logged to $LOG_FILE"
|
||||
Reference in New Issue
Block a user