如何使用shell中的版本创建增量文件

时间:2017-08-30 06:42:47

标签: shell

运行shell脚本时如何动态创建文件。 在/tmp文件夹中,我需要检查tmp文件夹中是否存在类似(CFT_AH-120_v1.txt)的文件,否则创建CFT_AH-120_v1.txt。下次运行shell脚本时,它应该创建CFT_AH-120_v2.txt,并且在每次运行时都应该增加文件的版本号。

在tmp文件夹中,我应该有像

这样的文件
CFT_AH-120_v1.txt
CFT_AH-120_v2.txt
CFT_AH-120_v3.txt

我将动态地从变量中获取CFT_AH-120

#!/bin/bash
export filename
temp=$(find CFT_AH-120-V* |  sort -V | tail -1)
if [ -e $temp ]
then    echo "ok"
    echo $temp
    fname="${temp%.*}"
    echo $fname
    temp1="${temp%[[:digit:]]*}$((${temp##*[[:alpha:]]} + 1))"
    echo $temp1
    touch $temp1 ".txt"
else
    touch CFT_AH-120-V1.txt
    echo "nok"
fi

1 个答案:

答案 0 :(得分:0)

我不确定您的具体要求。根据我的理解,这是一种简单的方法。

#!/bin/bash

file_temp=$(find . -name "CFT_AH-120-V*" -type f |  sort -V | tail -1)
echo $temp
if [ -z "$temp" ]; then
echo "File not found!"
else
num_temp=$(echo $temp | cut -d '-' -f3- | sed 's/V//')
num_value_incr=$(expr $new_temp + 1)
touch "CFT_AH-120-V$num_value_incr"
echo "New file created!"
fi

注意:此代码搜索“V”.... number ....(例如。*** V120)的最大值并增加基于该值,中间数也不会增加。如果您需要创建缺少的数字,则需要更改此代码的逻辑。

希望这对你有所帮助!