31 lines
912 B
Bash
Executable File
31 lines
912 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SRC_DIR="${1:-lab1_files/file_renaming/Salkind 6e Data Sets}"
|
|
DEST_DIR="${2:-lab1_files/file_renaming/reorganized}"
|
|
|
|
mkdir -p "$DEST_DIR"
|
|
|
|
shopt -s nullglob
|
|
|
|
for f in "$SRC_DIR"/Chapter\ *\ Data\ Set\ *.sav; do
|
|
base="$(basename "$f")" # e.g., "Chapter 12 Data Set 3.sav"
|
|
|
|
# Extract chapter number k and dataset number j robustly.
|
|
# Expected format: Chapter k Data Set j.sav
|
|
k="$(printf '%s' "$base" | sed -E 's/^Chapter ([0-9]+) Data Set ([0-9]+)\.sav$/\1/')"
|
|
j="$(printf '%s' "$base" | sed -E 's/^Chapter ([0-9]+) Data Set ([0-9]+)\.sav$/\2/')"
|
|
|
|
# If the file doesn't match the pattern, skip it (e.g., "Sample Data Set.sav")
|
|
if [[ "$k" == "$base" || "$j" == "$base" ]]; then
|
|
continue
|
|
fi
|
|
|
|
chap_dir="$DEST_DIR/Chapter${k}"
|
|
mkdir -p "$chap_dir"
|
|
|
|
cp -f "$f" "$chap_dir/DataSet${j}.sav"
|
|
done
|
|
|
|
echo "Done. Created reorganized structure at: $DEST_DIR"
|