Bashシェルスクリプトで連番付きファイル名の次の連番を算出する
はじめに
特定のフォルダにファイルが配置されており、これら全てに通し連番が付与されているとします。
例えば、以下のようにゼロフィルされた3桁の通し連番が付与されているようなファイルが可能されている場合などが考えられます。
(ファイル名でソートできるため、このようなケースはよくあるケースかと思います。)
さて、ここで新しいファイルを作成する場合は 016_xxx.txt
というファイル名を算出しなければなりませんが、シェルで次の通し連番を算出する方法について考えてみます。
検証環境
準備
まずはテスト環境を用意してみます。
003_xxx.txt
から 013_xxx.txt
までの11ファイルを作成し、次の通し連番プレフィックスを持つファイルを作成してみます。
次に作成したいファイル名は 014_xxx.txt
となります。
新しい通し連番ファイル名を算出する
以下のようなコマンドで、次の通し連番を算出することができます。
想定通りのファイル名が取得できました。
ファイルが存在しない場合を考慮し、 echo 0
を実行しています。
これにより必ず最新のINDEX( LATEST_INDEX=0
)が取得できるようになります。
ファイルが存在した場合には、ファイル名の先頭に登場する数値以外を除去しておきます。また先頭の0は除去しておきます。(8進数として認識されないようにするための考慮。)
後は取得できた値に1を加算すればよいわけです。
ひとこと
もう少しスマートにロジックを組めないものか。
ディスカッション
コメント一覧
まだ、コメントがありません