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