Bash-Replaceöåä;所有子文件夹中都有o a

Bash-Replaceöåä;所有子文件夹中都有o a,bash,replace,Bash,Replace,我得到了一个名为data的文件夹,其中包含名称为åäö的文件夹,我需要一个脚本将这些文件夹naames中的所有åäö替换为aö。 例子: 在“Folder1öå”之前 在“Folder1-o-a”之后存在各种重命名命令。其中一个使用语法 rename ö o * 第二个使用 rename s/ö/o/g * 使用man rename查找您的系统有哪一个 第一个可以实现为bash函数: Rename () { if (($# < 3)); then echo U

我得到了一个名为data的文件夹,其中包含名称为åäö的文件夹,我需要一个脚本将这些文件夹naames中的所有åäö替换为aö。 例子: 在“Folder1öå”之前
在“Folder1-o-a”之后存在各种
重命名
命令。其中一个使用语法

rename ö o *
第二个使用

rename s/ö/o/g *
使用
man rename
查找您的系统有哪一个

第一个可以实现为bash函数:

Rename () { 
    if (($# < 3)); then
        echo Usage: Rename from to files... 1>&2;
        return 1;
    fi;
    from="$1";
    to="$2";
    shift 2;
    for file in "$@";
    do
        mv "$file" "${file/$from/$to}";
    done
}
Rename(){
如果($#<3));那么
回显用法:从重命名为文件…1>&2;
返回1;
fi;
from=“$1”;
至=“$2”;
第二班;
对于“$@”中的文件;
做
mv“$file”“${file/$from/$to}”;
完成
}
请注意,它仅替换子字符串的第一个匹配项。如果要替换所有引用,请使用
${file//$form/$to}

当心! 有几种方法可以在Unicode中结束编码。因此,它可以是utf-8
c3 b6
,也可以是
6f cc 88
。如果您的文件系统使用unicode,您可能必须尝试所有的可能性