运行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
答案 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)的最大值并增加基于该值,中间数也不会增加。如果您需要创建缺少的数字,则需要更改此代码的逻辑。
希望这对你有所帮助!