103.2基礎
events.logを100行ごとのファイルへ分割する。
出力ファイル名の接頭辞をchunk-とする。
適切なコマンドはどれか。
× 不正解
split -lは出力ファイル1個あたりの行数を指定する。最後の引数は生成ファイル名の接頭辞である。
詳細解説
誤り
split -b 100 events.log chunk-100バイトごとに分割するため、行数の指定ではない。
100バイト単位なので、1行の長さにより行数が変わる。
誤り
head -n 100 events.log > chunk-先頭100行を1ファイルへ書くだけで、残りを継続して分割しない。
最初の100行しか保存せず、101行目以降の出力ファイルを作らない。
正しい
split -l 100 events.log chunk-入力を100行ごとに分け、chunk-から始まる出力ファイルを作る。
正解。100行ごとにchunk-aa、chunk-abのようなファイルを生成する。
誤り
split -n 100 events.log chunk-100個への分割指定であり、1ファイル100行にはならない。
GNU splitの-nは出力チャンク数や分割方式を指定し、各100行ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
LAB_DIR=$(mktemp -d)
seq 1 205 | split -l 100 - "$LAB_DIR/chunk-"
wc -l "$LAB_DIR"/chunk-*
rm -r "$LAB_DIR"期待される結果
100 chunk-aa
100 chunk-ab
5 chunk-ac
205 total
※実際の表示には一時ディレクトリのパスが付く理解のポイント
- -lは行数単位
- -bはバイト単位
- 既定の接尾辞はaaから増える
確認時の注意
- 確認環境: GNU coreutils 9.x
基礎のおさらい
接尾辞
既定ではaa、abのような英字接尾辞が付く。-dで数字接尾辞へ変更できる。
最後の断片
入力行数がNの倍数でなければ、最後のファイルだけN行未満になる。
問題IDKP-103-042
確認環境GNU coreutils 9.x
最終技術確認2026-08-12
誤り・権利侵害を報告