このタイトルはややこしいので、分解してみましょう。基本的に、さまざまな名前と拡張子を持つファイルの完全なディレクトリがあります。
MainDirectory/
image_1.png
foobar.jpeg
myFile.txt
iPad アプリの場合、拡張子の前に、これらすべてのファイル名の最後にサフィックス@2Xを追加して、これらのコピーを作成する必要があるため、次のようになります。
MainDirectory/
image_1.png
image_1@2X.png
foobar.jpeg
foobar@2X.jpeg
myFile.txt
myFile@2X.txt
ファイル名を一度に 1 つずつ手動で変更する代わりに、スクリプトを作成して処理したいと考えています。現在、次のものがありますが、期待どおりに機能しません。
#!/bin/bash
FILE_DIR=.
#if there is an argument, use that as the files directory. Otherwise, use .
if [ $# -eq 1 ]
then
$FILE_DIR=$1
fi
for f in $FILE_DIR/*
do
echo "Processing $f"
filename=$(basename "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"
newFileName=$(echo -n $filename; echo -n -@2X; echo -n $extension)
echo Creating $newFileName
cp $f newFileName
done
exit 0
また、これを純粋な bash に保持し、OS 固有の呼び出しに依存したくありません。私は何を間違っていますか?必要なことを行うために、何を変更できますか、またはどのコードが機能しますか?