티스토리 뷰
윈도우에서 생성한 input 파일을 리눅스에서 읽을 때 끝줄에 ^M 등의 특수문자가 삽입된다.
이를 해결하기 위해 사용한다.
하위 디렉토리 적용을 위해서는 아래와 같은 방법으로사용.
find 하부디렉토리 -name "*.*" |xargs dos2unix
[출처] 리눅스에서 dos2unix 하부디렉토리에 적용하는법|작성자 왕숟가락
자세한 사용법은 아래를 참고
원본 출처 : http://amornatura.tistory.com/42
도스에서 작업한 txt파일을 리눅스에서 불러와 작업하면 상당히 애로사항이 많게 됩니다.
파일을 편집하다 보면 뒤에 ^M이 생기는 것도 볼 수 있구요... -.-
이외에도 윈도우에서는 UTF-8로 기본 저장하지 않기 때문에 가끔 문제를 일으키기도 합니다.
하지만 리눅스에선 간단히 파일의 인코딩과 속성을 바꿀 수 있어요.
우선 파일의 속성을 살펴보기 위해 다음과 같이 입력합니다.
file test.txt
만약 도스에서 편집된 파일이면 다음과 같이 나옵니다.
test.txt: ISO-8859 text, with CRLF line terminators
이제 파일을 변환해주기 위해 다음과 같이 명령어를 입력합니다.
dos2unix test.txt
만약 dos2unix 가 설치되어 있지 않다면....
sudo apt-get install dos2unix 로 설치해주세요. ^^ 이제 file test.txt 를 다시 입력해 상태를 확입합니다.
test.txt: ISO-8859 text
이제 인코딩을 바꾸어줄 순서인데요. iconv 라는 명령어와 recode 라는 명령어 두개가 있습니다. recode의 경우 *.txt를 지원해서 참 편리하지만... 이상하게도 제가 가지고 있던 파일에선 UTF-8로 변환시 한글이 왕창 깨지더군요..ㅠㅠ 저는 iconv로 변환했을 때 한글이 깨지지 않았습니다.
iconv -f EUC-KR -t UTF-8 test.txt > test.txt1
위와 같이 입력해주는데 처음에는 현재 인코딩을, 두번째에는 원하는 인코딩을 쓰시면 됩니다. *.txt를 지원하지 않기 때문에 배치파일을 만들어서 쓰시거나 노가다를 좀 해주시면 됩니다... (라고 무책임하게 말하기ㅡ.ㅡㅋㅋ)
다시 file 명령어를 이용해 속성을 확인해보면,
test.txt: UTF-8 Unicode text
그리고 vi를 이용해 한글이 깨졌는지 확인해보면...! 깨지지 않았죠? (전 안깨졌어요...ㅋ)
많은 파일을 쉽게 변환하는 팁을 알려드리면... 결과파일의 파일이름을 쓸 때 확장자를 조금만 바꾸어주세요. 우분투의 경우 rename 이라는 명령어(별도로 설치하셔야합니다.)를 이용해 간단히 바꿀 수 있어요.
참고로 recode로 인코딩을 바꾸는 방법은 아래와 같습니다.
recode -f EUC-KR *.txt
자세한 옵션설명은 구글에서 검색해보세요. ^^
'개발 노트 > Linux' 카테고리의 다른 글
find 명령어 활용 (0) | 2013.11.01 |
---|---|
tcp port open 확인 (0) | 2013.11.01 |
리눅스에서 압축하기, 압축풀기 (1) | 2013.10.02 |
리눅스 기본 데몬들 (0) | 2013.09.16 |
sendmail 트러블 슈팅 (dnsmasq 문제 해결) (0) | 2013.09.12 |
- Total
- Today
- Yesterday
- java
- 웹보안
- over the wire
- 리터럴
- tr
- gz
- Linux
- OpenSSL
- tar
- find
- bz2
- SSL
- OverTheWire
- 압축파일
- BASE64
- 풀이
- 32bit
- Natas
- HTTPS
- X32
- Encode
- Bandit
- Strings
- grep
- solution
- ssh
- natas7
- 리눅스
- 웹보안공부
- nc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |