我給了一個名字,我應該用這個名字做一個dir。如果這個目錄已經存在,該文件夾的名字應該有_ $數字作爲其後綴。查找新文件夾索引
數的計算公式爲最高值+ 1,例如:
名稱:真棒
文件:虛擬真棒awesome_2 awesome_4 dummy_3
新建文件夾:awesome_5名稱:真棒
文件:虛擬dummy_1
新建文件夾:真棒
我找到最高價值的解決方案僅適用於沒有特殊字符的名稱。如果該名稱是例如:「$#& *(@)(%+#$ asdasd \ ^難過!」,它失敗
function max_item() {
local prefix="$1"
local max="0"
shopt -s nullglob
for in_file in * ; do
if [[ "$in_file" =~ ^"$prefix"_(-{0,1}[0-9][0-9]*)$ ]]; then
num="${BASH_REMATCH[1]}";
[[ "$max" -lt "$num" ]] && max="$num";
fi
done
echo "$max"
shopt -u nullglob
return 0
}
我猜它是與特殊。 。正則表達式中的字符,但我已經用盡了我所有的想法
你怎麼稱呼這個功能? – 123
性能提示:代替'for f in *'在'$ {prefix} _「*'中使用'f可以節省大量無用的迭代。 – Jens