선행 0이 있는 패턴을 기반으로 파일 분할

선행 0이 있는 패턴을 기반으로 파일 분할

텍스트 형식의 책이 있습니다. 책을 각각의 장을 포함하는 여러 파일로 나누고 싶습니다. 그래서 다음 명령을 사용합니다.

awk '/Chapter/{i++}{print > "chap"i}' "$f.txt"

여기서 $f는 for 루프의 변수일 뿐입니다. 하지만 파일 이름이 다음과 같은 것으로 나타났습니다.

chap1
chap9
chap11

앞에 0을 추가하는 방법인가요? 따라서 파일 이름은 다음과 같습니다.

chap001
chap009
chap011

저는 /bin/sh기본 쉘로 사용하고 있습니다.

답변1

일방 통행:

awk '/Chapter/{i=sprintf("%03d",i+1)}{print > "chap"i}' "$f.txt"

관련 정보