#! /bin/bash mkdir -p GPX/Archive for name in $(ls Route*.gpx Track*.gpx 2>/dev/null); do new_name=$(cat "$name" | grep -oP "(?<=).*?(?=)" | head -n 1 | sed -e 's/[^0-9a-zA-Z]\+/_/g').gpx if [[ "$name" =~ ^Route ]]; then new_name="GPX/$new_name" else new_name="GPX/Archive/$new_name" fi echo "Renaming: $name to $new_name" mv "$name" "$new_name" done [ -f Waypoints.gpx ] && mv Waypoints.gpx GPX/