ファイル名からスペースと小文字を削除するスクリプト

ファイル名からスペースと小文字を削除するスクリプト

スペースを「-」に置き換えて、現在のディレクトリにあるすべてのファイルのすべての文字を小文字にするスクリプトを作成しようとしています。

for x in 'ls'
    do
        if [ ! -f $x ]; then
            continue
        fi

        lc = `echo $x | tr '[A-Z]' '[a-z]'`
        if [ $lc != $x ]; then
            mv $x $lc
        fi
    done

find -name "* *" -type f | rename 's/ /-/g'

次の出力が表示されます。 call: rename from to files...

ただし、名前は変更されません。たとえば、次のようになります。252680610243-Analyzed Sample2 2Jul12.txt

を使用して権限を変更しましたが、chmod 706問題が発生しますか?私がここで何を見逃しているのでしょうか?

出力は次のとおりですbash -x lower.sh

+ for x in ''\''ls'\'''
+ '[' '!' -f ls ']'
+ continue
+ find -name '* *' -type f
+ rename 's/ /-/g'
call: rename from to files...

ベストアンサー1

Debianとその派生製品(Ubuntuを含む)では、簡単な呼び出しで簡単に達成できます。rename:

$ touch 'A B'
$ rename 'tr/ A-Z/-a-z/' -- *
$ ls
a-b

しかし、あなたrenameは一つです同じ名前の別のユーティリティ

おすすめ記事