[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rename filenames



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

else
echo "Please enter directory to process. Ex: remove-spaces.sh directory"
  exit 1
fi


Reply to: