n.txt には 3、10、2 が 1 行ずつ入っている。出力は?
sort n.txt | head -1正答
- 2
- 3
- 10
- エラーになる
解説
sort はオプションなしだと各行を文字列として辞書順に比較する。10 は先頭文字が 1、2 は 2、3 は 3 なので 10 → 2 → 3 の順になり、head -1 で 10 が出る。数値として小さい 2 を先頭にしたいなら sort -n を付ける必要がある。この取り違えは件数やサイズを並べるときに頻発するため、数値列には必ず -n(降順なら -rn)を付ける。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ