summaryrefslogtreecommitdiff
path: root/doc/tips/finding_duplicate_files/comment_3._comment
blob: 44eeb507599f05ce2c950742fc754cb496903a7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[[!comment format=mdwn
 username="mhameed"
 ip="82.32.202.53"
 subject="problems with spaces in filenames"
 date="Wed Sep  5 09:38:56 BST 2012"
 content="""

Spaces, and other special chars can make filename handeling ugly.
If you don't have a restriction on keeping the exact filenames, then 
it might be easiest just to get rid of the problematic chars.

    #!/bin/bash

    function process() {
        dir="$1"
        echo "processing $dir"
        pushd $dir >/dev/null 2>&1

        for fileOrDir in *; do
            nfileOrDir=`echo "$fileOrDir" | sed -e 's/\[//g' -e 's/\]//g' -e 's/ /_/g' -e "s/'//g" `
            if [ "$fileOrDir" != "$nfileOrDir" ]; then
                echo renaming $fileOrDir to $nfileOrDir
                git mv "$fileOrDir" "$nfileOrDir"
            else
                echo "skipping $fileOrDir, no need to rename."
            fi
        done

        find ./ -mindepth 1 -maxdepth 1 -type d | while read d; do
        process "$d"
        done
        popd >/dev/null 2>&1
    }

    process .

Maybe you can run something like this before checking for duplicates.

"""]]