1.03.3基礎
sortへunsorted.txtの内容を標準入力として渡す。
unsorted.txtというファイル名をsortの通常引数として指定しない。
適切なコマンドはどれか。
× 不正解
< FILEはFILEを読み取り用に開き、ファイル記述子0である標準入力へ接続する。
詳細解説
誤り
sort > unsorted.txtsortの標準出力でunsorted.txtを上書きする。
誤り。unsorted.txtが実行前に切り詰められ、sortは端末からの入力を待つためデータを失う。
誤り
sort >> unsorted.txtsortの標準出力をunsorted.txtへ追記する。
誤り。sortの結果を同じファイルへ追記する出力側の指定で、入力を供給しない。
正しい
sort < unsorted.txtunsorted.txtを読み取り用に開き、sortの標準入力へ接続する。
正しい。<によりsortのfd 0がunsorted.txtへ接続され、ファイル名引数なしで内容を読める。
誤り
sort 2< unsorted.txtファイル記述子2を読込用に操作しようとし、通常の標準入力ではない。
誤り。標準入力はfd 0であり、fd 2は通常stderrの出力用として使われる。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp); printf 'b\na\n' >"$tmp"; sort <"$tmp"; rm -f "$tmp"期待される結果
a
b理解のポイント
- fd 0はstdin
- <は入力redirect
- 元ファイルは変更しない
確認時の注意
- 確認環境: Bash 5.x / GNU sort / 一時ファイル
基礎のおさらい
コマンド引数との違い
sort fileとsort < fileは多くの場合同じ内容を処理するが、診断表示のファイル名などに差が出る。
フィルタ設計
stdinから読みstdoutへ書くコマンドは、リダイレクトやパイプで柔軟に接続できる。
問題IDKL-101-468
確認環境Bash 5.x / GNU sort / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告