34 lines
839 B
Bash
Executable File
34 lines
839 B
Bash
Executable File
#!/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[':']='_';
|
|
replacements["'"]='_';
|
|
replacements['(']='_';
|
|
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
|