nkfで改行コードを変換する方法
提供: Linux入門
2017年12月16日 (土) 13:59時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「Windows, Mac, Linux で '''改行コード''' が異なり、ファイルを開くと、変な文字が見えたり、全部が1行になっていたり、そういう...」)
スポンサーリンク
Windows, Mac, Linux で 改行コード が異なり、ファイルを開くと、変な文字が見えたり、全部が1行になっていたり、そういう場面に遭遇したことがある方もいらっしゃると思います。改行コードは簡単に変換できます。変換方法についてまとめました。
読み方
- nkf
- えぬけーえふ
概要
Windows や Unix で 改行コード が異なっているため、メールに添付されてきたファイル、ウェブでダウンロードしたファイルなどのテキストファイルをエディタ等で開いた時に、表示が崩れているように見えたり、よくわからない文字が表示されていることがあります。例えば、vim などのエディタでファイルを開いたときに、 ^M といった文字が表示され、ファイルの中身が1行に見えてしまうことがあります。
環境によって改行コードが異なるため、改行コードが理解できるツールでファイルを表示するか、改行コードを変換して対応する、といったことが必要になってきます。
文字コード
まず、文字コードの違いを明らかにしましょう。OSによって、文字コードが異なります。
OS | 改行コード | エスケープシーケンス | アスキーコード(16進) |
---|---|---|---|
Unix | LF | \n | 0A |
Mac OSX | LF | \n | 0A |
Mac OS9 | CR | \r | 0D |
Windows | CR+LF | \r\n | 0D 0A |
nkf を用いた改行コードの変換
nkf は、改行コードを変換することができます。
- -Lu
- Unix の改行コード(LF)に変換する
- -Lw
- Windows の改行コード(CR LF)に変換する
- -Lm
- Mac の改行コード(CR)に変換する
Unix の改行コードに変換する例です。
nkf -Lu foo.txt > bar.txt
nkf は、指定されたファイルを上書きすることもできます。
nkf -Lu --overwrite foo.txt
備考
この記事では、 nkf を例に挙げましたが、 tr コマンドや perl を使用して変換することもできます。
vim ユーザに向けて
vim でも変換は可能ですが、大きなファイルを vim で編集する場合、 vim が異様に動作が重くなって、操作するのが難しい場合もあるため、大きなファイルを扱わなければならない場合には、コマンドを利用した変換をお勧めします。
関連項目
ツイート
スポンサーリンク