2

我想在不同时间将一个目录复制到另一个目录中。每次,我都希望新名称比以前高一个数字/我希望能够获取该数字并将其存储到变量中。

所以如果我有一个:

mymaindir

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

我运行我的脚本,mymaindir将被复制到/home/user/dirs/STRING_002,我可以从中获得价值2。我一直在看不同的东西,split但它似乎不是我想要的。

4

2 回答 2

2

awk 一个班轮可以做到这一点:

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 回答