Frans van Berckel schreef op 2013-03-25 17:23:
Test 1, 2 & 3, met een directory met ongeveer 30 matches ... Renaming: Viviana/Engelstalig/Sophie B Hawkins - Right beside you.mp3 Renaming: Viviana/Engelstalig/Tina Charles - I love to love.mp3 mv: `Viviana/Engelstalig/Smokie - Naked love (baby love me ...).mp3' and `Viviana/Engelstalig/Smokie - Naked love (baby love me ...).mp3' are the same file Goed daar komen we wel overheen, denk ik dan, toch? Het zou wel handig zijn deze te loggen. Maar dan, de volgende krijg ik 4 keer. mv: cannot move `Viviana/Engelstalig/[Dr.Motte & West barn] Sunshine .mp3' to `Viviana/Engelstalig/[Dr.Motte & West barn] SunshineViviana/Engelstalig/[Dr.Motte & West barn] Sunshine .mp3': No such file or directory Wat opvalt is de spatie voor .mp3. Ls geeft nu .. ls "Viviana/Engelstalig/[Dr.Motte & West barn] Sunshine .mp3" Viviana/Engelstalig/[Dr.Motte & West barn] Sunshine .mp3
Okay, onderstaande werkt met # remove-spaces.sh /media/disk2 #!/bin/bash # name of this script: remove-spaces.sh # Check for arguments before starting if [ $# -gt 0 ]; then working_directory=$1 # Find wav files in set directory found=$(find "${working_directory}" -type f -iname "* .*") # Need to change IFS or files with filenames containing spaces will not # be handled correctly by for loop IFS=$'\n' # This is a loop for renaming for thisone in ${found}; do basename="${thisone%.*}" extension="${thisone##*.}" renamingbase="$(echo "$basename" | sed -e 's/ *$//g')" newfilename=${renamingbase}.${extension} if [ -f ${newfilename} ]; then echo "Error renaming: ${renamingbase}.${extension}" echo "We can't rename because the filename already exists" echo "Not renaming: $thisone" >>/var/log/remove-spaces.log else echo "Renaming: ${newfilename}" mv "${thisone}" "${newfilename}" fi done elseecho "Please enter directory to process. Ex: remove-spaces.sh directory"
exit 1 fi