以下のようなファイル構造があります。
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
_[国コード] を含むすべてのファイルを、この国コードで始まるフォルダー (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、マイベックス