2

さまざまな時点で、ディレクトリを別のディレクトリにコピーしたいと考えています。毎回、新しい名前を以前よりも 1 つ大きい数値にしたい / その数値を取得して変数に格納できるようにしたい。

だから私が持っている場合:

mymaindir

/home/user/dirs/STRING_000
/home/user/dirs/STRING_001

そして、スクリプトを実行するmymaindirと、コピーされ、そこから/home/user/dirs/STRING_002値を取得できます2。私はさまざまなものを見てきましたが、探しているものsplitではないようです。

4

2 に答える 2

2

awk 1 つのライナーでそれを行うことができます。

arr=( $(find . -name "STRING_*" | awk -F "_" '{if ($2>max) max=$2} 
        END{max++; printf("%d STRING_%03d\n", max, max)}') )

maxVal=${arr[0]}
fileName=${arr[1]}
于 2013-07-15T04:58:38.083 に答える
1

これのいくつかの形式を使用できます。

highest=$(find -name 'string_[0-9]*' | cut -d_ -f2 | sort -nr | head -1)
newname="string_$(printf "%03d" "$(( $highest+ 1))")"
于 2013-07-15T04:49:38.223 に答える