编写一个bash函数/脚本,该函数/脚本接受两个参数:filename和increment,然后按增量递增文件名的数量

编写一个bash函数/脚本,该函数/脚本接受两个参数:filename和increment,然后按增量递增文件名的数量,bash,Bash,我有一个文件夹,其中的文件具有精确的结构,即file01.txt、file02.txt等等。。 我需要编写一个函数,它接受文件名,例如file08.txt和increment,比如4,然后将file08.txt重命名为file12.txt 先谢谢你 #!/bin/bash function inc { incrementor=$2 filename=$(basename -- "$1") extention="${filename##*.}"

我有一个文件夹,其中的文件具有精确的结构,即file01.txt、file02.txt等等。。 我需要编写一个函数,它接受文件名,例如file08.txt和increment,比如4,然后将file08.txt重命名为file12.txt

先谢谢你

#!/bin/bash
function inc {
        incrementor=$2
        filename=$(basename -- "$1")
        extention="${filename##*.}"
        filename="${filename%.*}"
        number=$(echo "$filename" | tr -dc '0-9')
        let " number+=incrementor "
        filename=$(echo "$filename" | tr -d '0-9')
        mv $1 "$filename$number.$extention"
        echo "$filename $number $extention"
}
filename=$1
increment=$2
inc $filename $increment

明白了

欢迎来到堆栈溢出。这也是一个面向专业和热情程序员的问答页面。请在问题中添加您自己的代码。您至少需要展示您自己为解决此问题所做的研究。请始终使用
mv-i
mv-n
以防止在名称匹配时意外覆盖其他文件。例如,如果在file1.txt、file2.txt上运行此命令。。。file5.txt等。在您有机会将file5.txt重命名为file9.txt之前,您可能会用(原来的)file1.txt覆盖file5.txt。感谢Gordon提供这些信息,以后会注意这些错误。