Create new file but add number if filename already exists in bash

前端 未结 8 1576
Happy的楠姐
Happy的楠姐 2020-12-08 09:56

I found similar questions but not in Linux/Bash

I want my script to create a file with a given name (via user input) but add number at the end if filename already ex

8条回答
  •  难免孤独
    2020-12-08 10:40

    Try something like this

    name=somefile
    path=$(dirname "$name")
    filename=$(basename "$name")
    extension="${filename##*.}"
    filename="${filename%.*}"
    if [[ -e $path/$filename.$extension ]] ; then
        i=2
        while [[ -e $path/$filename-$i.$extension ]] ; do
            let i++
        done
        filename=$filename-$i
    fi
    target=$path/$filename.$extension
    

提交回复
热议问题