我有一个文件结构,如下所示:
Localizable
Localizable_en
Localizable_de
Localizable_es
Localizable_zh_CN
Root
Root_de
Root_en
Root_es
Root_zh_CN
TechnicalSupportPane
TechnicalSupportPane_jp
TechnicalSupportPane_de
TechnicalSupportPane_es
TechnicalSupportPane_en
TechnicalSupportPane_zh_CN
我想将带有 _[Country Code] 的所有文件复制到以该国家/地区代码开头的文件夹 (mkdir) 中并重命名该文件。但是有些文件没有国家代码,这些文件应该复制到根文件夹($TRANSLATION_FOLDER)。如果找到像 zh_CN 这样的中国国家代码,则应将其转换为 zh-Hans。
到目前为止,我有以下编码,但有些没有国家代码的文件会被忽略 - 或被错误地复制。
mkdir $SETTINGS_FOLDER
mkdir $TRANSLATION_FOLDER
for XLF in $( find "." -maxdepth 1 -iname "*.xlf" );
do
TMP_LANGUAGE=${XLF: -6}
LANGUAGE=${TMP_LANGUAGE:0:2}
if [[ "$XLF" == *zh* ]]
then
LANGUAGE_PROJ_FOLDER="zh-Hans.project"
else
LANGUAGE_PROJ_FOLDER=$LANGUAGE".project"
fi
TMP_FILE_NAME=${XLF%.xlf}
FILE_NAME=${TMP_FILE_NAME##*/}
echo "Processing language "$LANGUAGE" with file "$FILE_NAME
if [[ "$XLF" == *Localizable* ]]
then
echo "Processing Localizable" $XLF
mkdir $TRANSLATION_FOLDER"/"$LANGUAGE_PROJ_FOLDER
cp $FILE_NAME_STRING $TRANSLATION_FOLDER"/"$LANGUAGE_PROJ_FOLDER"/Localizable"
else
echo "Processing Root and TechnicalSupportPane" $XLF
mkdir $SETTINGS_BUNDLE_FOLDER"/"$LANGUAGE_PROJ_FOLDER
cp $FILE_NAME_STRING $SETTINGS_FOLDER"/"$LANGUAGE_PROJ_FOLDER
fi
done
我删除了文件前缀并在最后检查国家代码 - 这适用于所有具有国家代码的文件,但从没有最后一个字符的文件中取出 - 这是错误的。
有没有一种通过创建和复制这些文件来解析这些文件结构的有效方法?
BR,迈贝克