BASH 问题:增加 2 个变量以生成一个类似于 200001.txt、200002.txt 等的文件

BASH 问题:增加 2 个变量以生成一个类似于 200001.txt、200002.txt 等的文件

我得到了创建年份的第一部分,但是获取月份并增加它们却难倒了我。

#!/bin/bash
varRan=$(( $RANDOM ))
newdir="testing_"$varRan
#echo  $newdir

mkdir $newdir
cd ~/$newdir
for   ((i = 2000; i<= 2022 ; i++; )); do
        for  ((m = 1; m<= 12 ; m++; )) do
        touch $i$m".txt"
done
#       touch $i$m".txt"
done

答案1

使用带有前导零的 shell 扩展可以满足您的需要。

#/bin/bash

newdir="testing_$RANDOM"

mkdir "${newdir}"; cd "${newdir}"

for y in {2000..2022}; do
    for m in {01..12}; do
        touch "prefix_$y$m.txt"
    done
done

答案2

您可以使用date自定义格式在 shell 中生成日期

$ date +%Y-%m-%d -d "2002-03-28 +1 days" 
2002-03-29

$ date +%Y-%m-%d -d "2002-03-28 +1 months"
2002-04-28

$ date +%Y-%m-%d -d "2002-03-28 +1 years" 
2003-03-28

相关内容