원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

윈도우식 CR 값이 들어간 ASCII파일을 유닉스 시스템에서 열면 ^M 으로 표시되는데

 

 

vi 에서는

  : 1,$s/^M//g               ( * ^M을 입력시   CTRL+V, M을 입력한다)

으로 한개의 파일에 대해서 ^M 문자를 치환가능하다.

 

 

쉘에서는

# sed 's/\^M//g' 파일명

으로 ^M 문자가 빠진 내용을 화면으로 출력할 수 있으며,

 

 

# sed 's/\^M//g' 파일명  > 새로운파일 ; mv -f 새로운파일 파일명

와 같은 방식으로 본래의 파일 내용을 변경시킬 수 있다.

 

 

 

응용하여 디렉토리내 다수의 파일을 모두 변경시키고자 하면 다음과 같은 쉘스크립트로 처리할 수 있다.

 

#!/bin/ksh

 

for FILENAME in `find . -type f`
do
 sed -e 's/^M//' ${FILENAME} > tempfile                        
 mv -f tempfile ${FILENAME}
done

rm -rf tempfile

 

 (* 여기서도 ^M 은 CTRL+V,M 으로 입력한다. 터미널 표현에 따라서 화면에 안나올수도 있지만 표시가 되지 않아도 입력이 되지 않은것이 아니므로 그냥 진행한다)

 

 

 

 

 

 

 

(*.118.235.209)