sync/scripts/escapeFilenames.sh

32 lines
793 B
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
# for i in *placehoder*; do mv "$i" "${i//placeholder/replacement}" done
replacements=
declare -A replacements
unset replacements[0]
replacements[' ']='_';
replacements[':']='_';
2023-05-27 18:11:37 +02:00
replacements["'"]='_';
replacements['(']='_';
replacements[')']='_';
while [[ $# > 0 ]]; do
replacements["$1"]="$2";
shift 2;
done
for toReplace in "${!replacements[@]}"; do
echo "$toReplace"
replacement=${replacements[$toReplace]}
echo "$replacement"
for i in *; do
echo "$i"
if [[ ! -e "$i" || "$i" == "${i//$toReplace/$replacement}" ]]; then
continue; # weird behaviour with single space makes this necessary
fi
echo "mv $i -> ${i//$toReplace/$replacement}";
mv "$i" "${i//$toReplace/$replacement}";
done
done