쉘 스크립트를 사용하여 항상 4자리 연속 번호와 이름이 지정되는 파일을 만드는 방법

쉘 스크립트를 사용하여 항상 4자리 연속 번호와 이름이 지정되는 파일을 만드는 방법

이름이 4자리이고 필요한 경우 0으로 시작하는 여러 개의 *.txt 파일을 만들려고 합니다. 최대 변수에 도달하면 스크립트를 중지해야 합니다. 이는 /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

이 코드에는 셸의 외부 도구가 필요하지 않습니다. 외부 도구가 필요한 경우 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"

>빈 파일을 만들고 싶다면 touch를 .

답변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

관련 정보