ファイル名を別の名前で保存するには?

ファイル名を別の名前で保存するには?

私のスクリプトはNewNamesリストから読み取った後、新しい名前で新しいファイルを保存したいと思います。この名前は、ファイル名の最初の3文字と同じ3文字で始まる各ファイルに追加されたカウンタになります。

これが私の古いファイル名と新しいファイル名であると仮定します。

ファイル名一覧: A77 A77 A77 A78 A78

listofNewNames: A7701 A7702 A7703 A7801 A7802 (予想、listofNewNames は保存されません)

COUNTER=0
for i in listofFileNames; do
while [$COUNTER -lt 5]
let "COUNTER=COUNTER+01"
done
newName=${oldfilename}${COUNTER}.L2_LAC_OC
done

これが私が今まで持っているものですが、文字が変更されるたびにカウンタは0で再起動する必要があるため、ファイル名の長さは決して5にすることはできません。たとえば、ファイル数に応じて3になり、次に2になります。

私は明らかに言ったことを願っています。よろしくお願いします。

ベストアンサー1

last_name=""
listofFileNames=(A77 A77 A77 A78 A78)

for name in "${listofFileNames[@]}"; do
        test "$name" != "$last_name" && COUNTER=1
        last_name="$name"
        printf "%s%02d\n" "${name}" "${COUNTER}"
        ((COUNTER++))
done

おすすめ記事