#!/bin/bash

TEST=$1

function replaceBy() {
  local from=$1
  local to=$2
  local type=${3:-"f"}
  local test=${4:-"TEST"}
  echo "from --$from--"
  echo "to   --$to--"
  echo "test --$test--"
  # On passe $from et $to en arguments à bash -c pour que le sous-sh les connaisse
  find . -type $type -name "*$from*" -execdir bash -c '
    from=$1
    to=$2
    test=$3
    for item; do
      if [[ $item != "$from" && "$item" == *"$from"* ]]; then
        # On remplace dynamiquement le pattern contenu dans $from par $to
        new_name="${item//"$from"/$to}"
        echo "mv -v --$item-- -> $new_name"
	if [[ "$test" == "NO" ]]
	then
	  echo "renaming ..."
	  mv -v "$item" "$new_name"
	  echo " done"
	fi
      fi
    done
  ' _ "$from" "$to" "$test" {} +
}


replaceBy ' ' _ "f" $TEST
replaceBy '(' _ "f" $TEST
replaceBy ')' _ "f" $TEST


replaceBy "\\&" _ "f" $TEST

replaceBy ' ' _ "d" $TEST
replaceBy '(' _ "d" $TEST
replaceBy ')' _ "d" $TEST

replaceBy "\\&" _ "d" $TEST

