読者です 読者をやめる 読者になる 読者になる

改行コードよく分からんから一括置換すればいい

Linuxの話ね。前職ではtailコマンドくらいしか打ったことなかったんだけど(ちょっと嘘)
普通に日々本番機を触るお仕事にかわった。で、Windowsも使いつつごちゃごちゃやってたら

案の定「改行コードあかーん!」ってギリギリのタイミングで気付くという事態が起きた。

そして一瞬で変換できることを知ったのでメモ。

環境:CentOS 6.5
確認に使ったファイル:雑極まりない"Windows.txt" ※カレントディレクトリにある設定

f:id:ihcomega:20150410193352p:plain

ほーらdosやで!(Vimはろくに使えないけど使ってるフリ)

①改行コードを確認する

odコマンドを使います!
オプションは色々あるので--helpに助けてもらおう。
たとえば・・・
od -a Windows.txtと叩くと

0000000 H e l l o cr nl E v e r y o n e cr
0000020 nl : ) cr nl
0000025

od -c Windows.txtと叩くと

0000000 H e l l o \r \n E v e r y o n e \r
0000020 \n : ) \r \n
0000025

っていうふうに返ってくる。一目で怪しいと分かるのだ。


ここで改行コードメモ(なお一生覚えられない病である)

Windows \r\n(CR+LFというやつ)
UNIX \n(LFというやつ)
OS X \r(CRというやつ)
②改行コードを一括置換する

dos2unixコマンドを使います!
dos2unix Windows.txtとするだけだよ。
od -a Windows.txtで確かめてみよう~

0000000 H e l l o nl E v e r y o n e nl :
0000020 ) nl
0000020

置換されている!
逆がやりたかったら、unix2dosだ~。
コマンドが見つかりませんと言われてしまっても
yum install dos2unix
すればOKよん。


参考(というかただの引用です。ありがとうございます。)

Linux上のファイルの改行文字を確認する方法 - Miuran Business Systems

備忘録: 【LINUX】テキストファイルの改行コード変換【unix2dosと、dos2unixコマンド】

正規表現サンプル(正規表現Tips その1)