Bash - 증분 파일 이름에 다른 출력을 쓰는 방법

Bash - 증분 파일 이름에 다른 출력을 쓰는 방법

파일 이름을 늘려서 스크립트의 여러 출력을 자체 파일에 쓰려고 합니다.

INPUT="$1"

# while loop
while IFS= read -r -n1 char
do
        # display one character at a time
    echo "$char" > filename
done < "$INPUT"

증분 카운트는 없지만 이것이 내가 지금까지 수행한 작업입니다. 스크립트는 한 번에 한 문자씩 인쇄하므로 이를 자체 파일에 넣고 파일을 덮어쓰지 않도록 증분 또는 영숫자 파일 이름을 사용해야 합니다.

답변1

그러면 각 문자열에 대한 증분과 함께 파일 이름이 생성됩니다.

input="$1"
counter=1
while IFS= read -r -n1 char; do
  ((counter++ <= ${#input} ))
  echo "$char" > "filename$char$counter"
done < "$input"

출력을 stdout 및 파일로 인쇄하려면 다음을 변경하십시오.

echo "$char" > "filename$char$counter"

도착하다

echo  "filename$char$counter" | tee "filename$char$counter"

문자열을 구문 분석해야 하는 경우 입력에 대해 추가 테스트를 수행해야 합니다.

 < <(printf '%s' "$input")

바꾸다

< "$input"

관련 정보