1.03.2標準
CRLF形式の入力からCR(復帰、\r)だけを除き、LFは残して標準出力へ送る。
適切なtrコマンドはどれか。
× 不正解
tr -d SETはSETに含まれる文字を削除する。CRLFからCRだけを除けばLF改行へ変換できる。
詳細解説
誤り
tr '\r' '\n'CRをLFへ置換し、元のLFと合わせて空行を増やす。
誤り。CRLFの2文字がLFLFになり、元の各行の間へ余分な空行が入る。
誤り
tr -d '\n'LFを削除し、行区切りを失う。
誤り。残すべきLFを消してしまい、行が連結される。
誤り
tr -s '\r'連続CRを1個へ圧縮するだけで、CRを除去しない。
誤り。各行に1個のCRしかなければ何も変わらず、CRが出力へ残る。
正しい
tr -d '\r'指定文字集合のCRを入力から削除し、LFは維持する。
正しい。-dの集合へCRだけを指定するため、各CRLFがLFだけになる。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'one\r\ntwo\r\n' | tr -d '\r' | od -An -tx1期待される結果
各行末が0aだけで、0dを含まない16進列理解のポイント
- -dはdelete
- \rはCR
- \nはLF
確認時の注意
- 確認環境: GNU coreutils 9.x / 標準入力
基礎のおさらい
trの単位
trは文字列検索置換ではなく、入力を文字単位で変換・削除する。
改行形式
Unix系はLF、Windows系テキストはCRLFが一般的で、混在時に制御文字確認が役立つ。
問題IDKL-101-463
確認環境GNU coreutils 9.x / 標準入力
最終技術確認2026-08-13
誤り・権利侵害を報告