我想在不同时间将一个目录复制到另一个目录中。每次,我都希望新名称比以前高一个数字/我希望能够获取该数字并将其存储到变量中。
所以如果我有一个:
mymaindir
/home/user/dirs/STRING_000
/home/user/dirs/STRING_001
我运行我的脚本,mymaindir
将被复制到/home/user/dirs/STRING_002
,我可以从中获得价值2
。我一直在看不同的东西,split
但它似乎不是我想要的。
我想在不同时间将一个目录复制到另一个目录中。每次,我都希望新名称比以前高一个数字/我希望能够获取该数字并将其存储到变量中。
所以如果我有一个:
mymaindir
/home/user/dirs/STRING_000
/home/user/dirs/STRING_001
我运行我的脚本,mymaindir
将被复制到/home/user/dirs/STRING_002
,我可以从中获得价值2
。我一直在看不同的东西,split
但它似乎不是我想要的。
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]}
您可以使用以下某种形式:
highest=$(find -name 'string_[0-9]*' | cut -d_ -f2 | sort -nr | head -1)
newname="string_$(printf "%03d" "$(( $highest+ 1))")"