我有许多跨大小写重复的图像文件(即 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