如何使用 shell 脚本创建始终为 4 位连续编号和命名的文件

如何使用 shell 脚本创建始终为 4 位连续编号和命名的文件

我正在尝试创建多个 *.txt 文件,其名称为 4 位数字且需要时以零开头。当达到最大变量时,脚本需要停止。这是使用 /bin/sh (不是 bash),但非常感谢任何帮助。

#!/bin/sh
NUMBER=0001
MAX=0011
NUMBERFILE=$NUMBER".txt"
while [ $NUMBER -lt $MAX ]; do
    printf "\n$NUMBERFILE"
    # touch $NUMBERFILE
    NUMBER=$(( NUMBER+0001 ))
    NUMBERFILE=$NUMBER".txt"
done
printf "\n\nFINISHED!\n\n"

答案1

此代码不需要 shell 中的任何外部工具,如果您需要外部工具,那么 seq 就是答案!

#!/bin/sh

NUMBER=1
MAX=11
while [ $NUMBER -lt $MAX ]; do
  file=$(printf '%04d.%s\n' "$NUMBER" "txt")
  printf '%s\n' "Creating" "$file"
  touch "$file" 
  NUMBER=$(( NUMBER+1 ))
done
printf "\n\nFINISHED!\n\n"

>如果您只想创建一个空文件,则可以将触摸替换为。

答案2

#!/bin/sh

MIN=1
MAX=11
PADDING=4

for i in $(seq -f "%0${PADDING}g" $MIN $MAX); do
  file=${i}.txt
  printf "$file\n"
  touch $file
done

printf "\n\nFINISHED!\n\n"

答案3

也试试

seq -f">%04g.txt" "$MIN" "$MAX" | . /dev/stdin

相关内容