본문 바로가기

Web/LINUX

DOS와 UNIX간의 문서변환

반응형
DOS와 UNIX간의 문서변환

다양한 방법이 존재하기 때문에 자신의 상황에 맞추어서 적절한것을 이용하면 될것이다.

에디터의 사용

☞vi 에디터에서 :1,$s/^M//g와 같이 입력한다.
-:는 명령모드 실행 의미
-1,$는 첫라인에서 마지막라인을 의미
-s는 substitute를 하라는 명령어로 대체하라는 의미이다.
-첫번째/는 그다음에 어떠한 문자를 대체할 것인가를 지정한다는것을 의미
-두번째/는 다음에 대체시킬 문자가 온다는 것을 나타낸다.
-세번째/는 대체되는 부분에 대한 지정이 끝남을 의미한다.
-^M은 Ctrl키와 V키를 눌러서 입력한후 다시 Ctrl키와 M을 누르라는 뜻

☞sed the stream editor로서 입력파일에 스크립트에 지정한 방식대로 처리를 해서 출력 파일을 만들어 주는 에디터이다. 입력과 출력은 표준입력과 표준출력을 사용할 수 있다. 그러므로 이 방법은 실제로 에디터를 실행해서 우리가 원하는 파일이 화면에 나오는것이 아니라 바로 스크립트 처리를 해서 리다이렉트를 통해서 다른 파일로 만드는 것이다. 방법은 vi에서 사용된 명령 방식과 동일하다. 대신 입력파일과 출력파일의 지정이 있다.
sed's/^M//g'inputfile>outputfile

유틸리티의 이용

☞dos2unix나 d2u 프로그램의 역할은 단지 도스에서 만들어진 파일에서0x0d만을 제거한다. 사용법은 간단하다.
dos2unix dosfilename
d2u dosfilename
역으로 유닉스 파일을 도스에서 사용하는 경우에는 반대의 유틸리티를 사용할 수 있다. 이 경우에는 0x0d를 삽입하는 작업을 할 것이다.
unix2dos unixfilename
u2d unixfilename


☞fromdos 프로그램은 역시 간단한 0x0d제거 프로그램이다. 사용법은 다음과 같다.
fromdos unixfilename


스트링 처리 프로그램 사용

☞perl은 perl 스크립트를 입력받아서 파일에 대해서 처리할 수 있다. 실행은 명령행에서 아래와 같이 하면 된다.
perl -pi-e's/\r//'inputfile
-e 다음에 원하는 스크립트를 써주면 파일의 마지막 까지 해당 스크립트를 실행한다. 역시 스크립트 내용은 vi에서 수행시킨것과 동일하다. 세개의 / 사이에 대체어와 패대체어를 넣고 대체하라는뜻이다. 결과는 리다이렉트를 통해서 새로운 파일을 만든다.

☞awk는 패턴매칭과 처리에 주로 사용되는 강력한 언어이다. 사용법은 명령해에서 다음과 같이 한다.
awk'{print$0,"\r"}'inputfile>outputfile
print$0는 문서 전체를 의미한다.

셀명령어의 사용

tr은 쉘에서 제공하는 문자변환과 삭제에 사용되는 명령어 이다. 사용법은 다음과 같다.
tr-d'\015'outputfile
위에서 -d는 삭제를 delete를 의미하고 \015는 역시 0x0d를 의미한다. 이 tr 명령어는 vi 에디터내 에서도 사용 될 수 있다.
다음과 같이 차례로 입력해보면 결과가 동일함을 알 수 있다. 대신 쉘에서 직접 실행시킨것과의 차이점은 에디터상의 문자들에 대해서 처리함으로 처리후에도 결과가 에디터상에 남아 있다는것이다.
1G!Gtr-d^M엔터키
이와같이 정확히 입력하면 화면에 ^M 문자가 사라지는 것을 알 수 있다. 이때 1G는 파일의 첫번째 라인으로 이동하라는 표시이고 !G는 쉘명령을 하겠다는 뜻이다.

여기까지 입력하면 입력모드가 나타나고 그 파일이 첫째줄에서 총 몇라인인지 나타난다. 계속 이어서 실제로 쉘명령어인 tr과 그 나머지 부분을 입력하면 몇개의 라인이 filter 되었다고 화면에 나오고 지워진것을 확인 할 수 있을것이다.

mcopy 사용

이명령은 m 유틸 시리즈중 하나로 도스 copy 명령처럼 사용한다. 이 명령을 사용할 때 옵션을 다음과 같이 주면 ^M이 없어진다.

mcopy-ta:/test.txt

-t 옵션은 text파일 이라는것을 명시적으로 지정하는것이고 그다음의 도스에서 copy명령어를 사용하는 방법과 동일하다.

ftp의 사용

ftp를 이용하여 text 파일을 업로드할 때에 binary로 지정하지 말고 그냥 ascii 모드로 지정하면 ftp 프로그램이 알아서 삭제해주므로 좀 귀챦더라도 나중에 ^M 문자를 제거하는 수고를 덜게 되므로 이 방법을 사용하는 것도 좋을 것이다.
[출처] DOS와 UNIX간의 문서변환|작성자 명랑폐인
반응형

'Web > LINUX' 카테고리의 다른 글

ssh로 특정 ip접근 hosts.deny 자동 추가  (0) 2011.08.31
Zend Optimizer v3.3  (0) 2011.08.31
unix 나 linux 에서 ^M 문자열 한방에 제거하기  (0) 2011.08.31
ssh 포트 변경  (0) 2011.08.31
[펌] EUC-KR -> UTF-8 파일명 변경  (0) 2011.08.31