UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS7 dos2unixコマンドで改行コード変換




サーバ管理をする上でPerlでスクリプトを組み、Linuxサーバで動かしているのですが、それに限らずWindows上で作業したテキストファイルをLinuxにアップロードして使用するということはよくあります。その際にアップロードしたファイルの改行コードがUNIXではなくWindowsとなっており、正常に使用できないということがあります。Windows上で正しく変換しなおせば良いのですが、Linux上で改行コードを変換するコマンドも用意されていますのでメモ書きを残します。

まず改行コードは大きくわけて以下のものがあります。

OS 改行コード 
DOS / Windows  CR+LF 
Mac OS ( OS X以前 )  CR 
UNIX系OS  LF 


dos2unixコマンドはyumコマンドでインストールできます。

# yum install dos2unix
# rpm -qa | grep dos2unix
dos2unix-6.0.3-4.el7.x86_64


改行コードを変換する具体的なコマンドは下記のようになります。


# Windowsの改行コードからUNIXの改行コードに変換する
# dos2unix test.txt
dos2unix: converting file test.txt to Unix format ...

# 現状の改行コードを調べる。何も表示されない場合はLF
# file test.txt
test.txt: ASCII text



# UNIXの改行コードからWindowsの改行コードに変換する
# unix2dos test.txt
unix2dos: converting file test.txt to DOS format ...

# 変換後の改行コードを調べる。
# file test.txt
test.txt: ASCII text, with CRLF line terminators


これらのコマンドでなくてもnkfなどでも改行コードを変換することは可能です。ただ、CentOSではなぜかyumでnkfを見つけることができず、オプションなども覚えきることができないのでdos2unixコマンドがお勧めです。


 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.