Windowsの改行コードをUNIXの改行コードに変換するスクリプトを作る
シェルスクリプトやPerlスクリプト等にWindowsの改行コードを使われると正しく動かない。
UNIXの改行コードに変換してやればいいのだが、いちいち「tr」コマンド等を使うのは面倒なので、改行コード変換スクリプトを作っておく。
一番下の内容を「dos2unix」と言う名前で保存して、
$ dos2unix hoge.txt または $ dos2unix hoge.txt 644
としてやれば、Windowsの改行コード(CR LF)がUNIXの改行コード(LF)に変換される。
#!/bin/sh # # dos2unix # TMPDIR=/tmp MODE=644 if [ $# -lt 1 ]; then echo "Usage: dos2unix file [mode]" exit fi if [ $# -gt 1 ]; then MODE=$2 fi if [ -x ${TMPDIR}/dos2unix-tmp ]; then rm ${TMPDIR}/dos2unix-tmp fi perl -pe 's/\r\n/\n/' $1 > ${TMPDIR}/dos2unix-tmp mv -f ${TMPDIR}/dos2unix-tmp $1 chmod ${MODE} $1