先行ゼロのパターンに基づいてファイルを分割する

先行ゼロのパターンに基づいてファイルを分割する

テキスト形式の書籍があります。本をそれぞれの章を含む複数のファイルに分割したいと思います。だから、次のコマンドを使用します。

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

ここで、 $f は for ループの変数にすぎません。しかし、ファイル名が次のように見えました。

chap1
chap9
chap11

前にゼロを追加する方法ですか?したがって、ファイル名は次のようになります。

chap001
chap009
chap011

私は/bin/shデフォルトのシェルとして使用しています。

ベストアンサー1

一方通行:

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

おすすめ記事