カウンターを使用してBASHファイルの名前を変更するバッチ

カウンターを使用してBASHファイルの名前を変更するバッチ

フォルダ内のすべてのファイルの名前を次のように変更したいと思います。PREFIX+COUNTER+FILENAME

例えば。入力する:

england.txt  
canada.txt  
france.txt

出力:

CO_01_england.txt  
CO_02_canada.txt  
CO_03_france.txt

ベストアンサー1

リクエストされた内容は次のとおりです。

n=1; for f in *.txt; do mv "$f" "CO_$((n++))_$f"; done

どのように動作しますか?

  • n=1

    これは変数をn1に初期化します。

  • for f in *.txt; do

    これにより、名前で始まる現在のディレクトリを繰り返すループが始まります.txt

  • mv "$f" "CO_$((n++))_$f"

    これにより、ファイル名がカウンタにCO_プレフィックスを持つように変更されます。nこの++シンボルはbashに変数を増やすように指示しますn

  • done

    これはサイクルの終わりを示します。

改善する

このバージョンでは、printfこれを使用して数値形式をより効果的に制御できます。

n=1; for f in *.txt; do mv "$f" "$(printf "CO_%02i_%s" "$n" "$f")"; ((n++)); done

特に、この形式は、数字がまだ1桁の場合は、%02i数字の前に0を付けます。n

おすすめ記事