aozora_conv は、青空文庫形式の書籍を入力として受け取り、不要な制御文字やルビを削除するシェルスクリプト (bashスクリプト) です。このツールは、後続に文字読み起こしソフト(ずんだスクリプト Zunda Script)での利用を目的として設計されています。
- 青空文庫形式のテキストファイルを効率的に処理
- 不要な制御記号やルビ(《》)の削除
- 読書スピードと分割時間に基づいてテキストを自動的に分割
- 出力ファイルのナンバリングによる管理の容易化
- 標準入力および複数の入力ファイルに対応
- POSIX互換のシェル環境(例:Linux, macOS)
- 以下の外部ツールがインストールされていること:
- bash
- nkf
- sed
- grep
- gawk
- mktemp
- tr
- head
- sort
- uniq
- wc
リポジトリをクローンします:
git clone https://github.com/tanep3/aozora_conv.git
スクリプトに実行権限を付与します:
chmod +x aozora_conv/aozora_conv
そして、スクリプトを /usr/local/bin
に移動します:
sudo mv aozora_conv/aozora_conv /usr/local/bin
必要な外部ツールがインストールされていることを確認します。インストールされていない場合は、以下のコマンドを使用してインストールしてください(例はUbuntuの場合):
sudo apt-get update
sudo apt-get install nkf sed grep gawk coreutils
aozora_conv スクリプトは、コマンドラインから実行します。以下に主なオプションと使用例を示します。
-h, --help
: ヘルプメッセージを表示して終了します。-s, --speed NUM
: 読書スピードを指定します(1分間にNUM文字)。デフォルトは300。-t, --time MINUTES
: 分割時間を指定します(分単位)。デフォルトは20分。-i, --input FILE
: 入力ファイルを指定します。複数指定可能です。-o, --output FILE
: 出力ファイルのベース名を指定します。分割が行われる場合、ナンバリングが付与されます(例:text_001.txt, text_002.txt)。分割が行われない場合は指定されたファイル名で出力します。
- 出力ファイルを20分ごとに分割する場合(デフォルト速度300字/分):
aozora_conv -t 20 -i wagahaiwa_nekodearu.txt -o text.txt
- 読書スピードを400字/分、出力ファイルを15分ごとに分割する場合:
aozora_conv -s 400 -t 15 -i wagahaiwa_nekodearu.txt -o text.txt
- 出力ファイルを指定せず、標準出力に出力する場合:
aozora_conv -i wagahaiwa_nekodearu.txt > output.txt
- 標準入力を使用して処理する場合:
echo "今日《こんにち》は世界《せかい》。" | aozora_conv > sysout.txt
-t
オプションを使用する場合は、必ず-o
オプションを指定してください。指定しない場合、エラーが発生します。-o
オプションを指定しない場合、スクリプトは標準出力に1本のファイルを出力します。分割オプション(-t
)は使用できません。- 入力ファイルが存在しない場合、エラーメッセージが表示され処理が中断されます。
- 処理中のメッセージや統計情報はすべて標準エラー出力に表示されます。これにより、パイプを使用した際に不要な情報が後続のコマンドに流れるのを防ぎます。
処理完了後、以下の情報が標準エラー出力に表示されます:
- 文字コードの検出結果
- 総文字数
- 推定読書時間
- 処理完了メッセージ
このプロジェクトはMITライセンスの下で公開されています。詳細については、LICENSE ファイルを参照してください。
たねちゃんねる