
大文字と小文字で繰り返される複数の画像ファイルがあります(例:file.jpg File.jpg)。すべての大文字を完全に削除する場合を除き、以下のスクリプトが必要です。 fslintがこれを行うことができることを知っていますが、端末が多すぎるため、端末で実行したいと思います。
find . -maxdepth 1 -print0 | sort -z | uniq -diz
答え1
次のスクリプトは必要な操作を実行できます。 (実際に行うことではなく、実行することをエコーするように設定したので表示できます。)
#!/bin/bash
# This variable will always be in lower case. That means that if you do
# l=Hello the result will be $l==hello.
typeset -l l
for f in *
do
l=$f # Forces to lowercase due to typeset
if [ "$l" != "$f" -a -e "$l" ]
then
echo rm "$f"
fi
done
たとえば、次のようになります。
$ ls
FIle.JpG File.jpg file.jpg
$ rem_case_dup.sh
rm FIle.JpG
rm File.jpg