ファイル名の数を増やしてファイル名を変更する

ファイル名の数を増やしてファイル名を変更する

次のように番号付けされたイメージファイルを含むディレクトリがあります。

01.png
02.png
03.png
03.svg
04.png
05.png
06.jpg
07.png
08.png
09.png
09.svg
10.png

場合によっては、ファイルにはさまざまな形式の複数のバージョンがありますが(たとえば、上記のファイルバージョンとファイルバージョンpngsvg、数字は連続しています。通常、ディレクトリごとにこれらのファイルは40から80です。数字は、これらの画像が原稿(Word文書ですが重要ではありません)に表示される順序に対応します。画像の順序を決定する他の方法はありません。0309

原稿に新しい画像を追加する場合は、その画像のコピーを正しい番号でこのディレクトリに配置する必要があります。したがって、新しい画像が原稿の5番目の画像の場合は、スペースを確保するためにディレクトリのファイル名を次のように変更する必要があります。

01.png
02.png
03.png
03.svg
04.png
06.png
07.jpg
08.png
09.png
10.png
10.svg
11.png

コマンドラインまたはスクリプトまたはマクロで特定の番号から始まり、すべてのファイルの番号を変更する最も簡単な方法は何ですか? bashを使用して標準のFedora Linuxをインストールしました。

ベストアンサー1

私はそれが次のことを行うべきだと思います:

#!/bin/bash

NEWFILE=$1

for file in `ls|sort -g -r`
do
    filename=$(basename "$file")
    extension=${filename##*.}
    filename=${filename%.*}

    if [ $filename -ge $NEWFILE ]
    then
        mv "$file" "$(($filename + 1))".$extension
    fi
done

スクリプトは1つのパラメータ、つまり新しい画像の番号を使用します。

PS。イメージの外側にある別のディレクトリにスクリプトを配置します。イメージディレクトリには、説明されているように名前付きイメージのみが必要です。

おすすめ記事