잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (763)  |  추천 및 재미 (15)  |  자료실 (16)  |  끄적거림 (421)  |  시나리오 (757)  |  드라마 대본 (248)  |  

2019년 04월 22일
옳지 않다 생각되는 양심의 가시는 정의의 시작이다. 그 길을 따라라. 넘어지지 않으리라. - 바다아이
 

    리눅스 데스크탑

리눅스 데스크탑 - Find 명령만으로 모든 파일의 한글 문자 인코딩 변환하기, iconv
이 름 : 바다아이   |   조회수 : 510         짧은 주소 : https://www.bada-ie.com/su/?891533885405
오전에 리눅스에서  수십 개 이상의 디렉터리와 백여 개 이상의 파일이 있는 곳에서
과거 EUC-KR 로 인코딩 되어 있던 파일을 UTF-8로 코드 변환을 해야할 필요가 있었습니다.
(혹은 윈도우의 코드페이지 947로 되어 있는 파일을 리눅스에 가지고 가서
 UTF-8로 변환할 경우도 마찬가지 입니다.)

물론 쉘 프로그램을 몇 줄 짜서 작업을 해도 되지만,
Linux, Mac 등이 기본으로 가지고 있는 find 명령을 이용해 보기로 했습니다.


find . -type f -exec iconv -f cp949 -t utf-8 {} -o {}.new \; -exec rm -rf {} \; -exec mv {}.new {} \; -exec echo -n "{} ==> change ==> " \; -exec file -bi {} \;


위의 한 줄로 가능합니다.

이제 설명해 보겠습니다.

find .
현재 디렉터리 . 에서 시작하여 모든 디렉터리 항목을 살피되,

-type f
디렉터리를 제외하고 실제 파일만 표시하며,

-execdir iconv -f euckr -t utf-8 {} -o {}.tmp \;
일단 -exec 나 -execdir 모두 그 다음에 나오는 명령을 수행하되 \; 에서 끝이 나도록 합니다.
또한 {} 은 현재 매칭된 파일이름이 치환됩니다.
-exec는 {} 치환 시 find에서 찾은 full path 혹은 상대 path의 경로가 포함되어 나타나며,
-execdir은 {} 치환 시 실제 해당 하위 디렉터리에 들어가서 패스명을 제외한 파일명만 치환됩니다.
따라서 위에 명령은 각 하위디렉터리를 들어가서 모든 파일에 대하여
euckr을 utf-8 로 iconv 명령을 사용하여 변환하되 그 결과는 해당 파일명에 .tmp 를 붙인 결과가 저장됩니다.

-execdir mv -f {}.tmp {} \;
이전 명령에서 변환한 결과를 .tmp 확장자를 추가해서 붙여 놓았으므로,
이 명령에서 다시 원본으로 되돌리는 역할을 수행합니다.


출처 : http://egloos.zum.com/mcchae/v/10938486
 
| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
167 리눅스 데스크탑 dd , 바다아이 1
166 리눅스 데스크탑 , dd if=/dev/zero, . low format 바다아이 141
165 리눅스 데스크탑 freebsd ufs , linux ufs mount 바다아이 237
164 리눅스 데스크탑 Arch on WSL, archlinux libQt5Core.so.5 not found 바다아이 197
163 리눅스 데스크탑 , .... input text ... font 바다아이 249
162 리눅스 데스크탑 ... 바다아이 236
161 리눅스 데스크탑 , , .. gparted 바다아이 335
160 리눅스 데스크탑 ssh .... ssh .. 바다아이 292
159 리눅스 데스크탑 thunderbird imap , , , .. 바다아이 354
158 리눅스 데스크탑 QT GTK+ WxWidgets, gui 3... golang qt, golang gtk, golang WxWidgets 바다아이 455
157 리눅스 데스크탑 debtap , deb . 바다아이 469
156 리눅스 데스크탑 16.04 - GUI CLI 바다아이 456
155 리눅스 데스크탑 , ... 바다아이 375
154 리눅스 데스크탑 zip, rar ... 바다아이 427
153 리눅스 데스크탑 , , centos 바다아이 1379
152 리눅스 데스크탑 , , , , chage , aging 바다아이 481
151 리눅스 데스크탑 /etc/shadow ! !!, * , lock , . 바다아이 478
150 리눅스 데스크탑 tar, gzip, gz, bzip2, bz2, zip, unzip, compress, xz .... 바다아이 529
149 리눅스 데스크탑 ico , icoutils 바다아이 481
148 리눅스 데스크탑 archlinux , mirror 바다아이 444
147 리눅스 데스크탑 Kernel modules 바다아이 536
146 리눅스 데스크탑 archlinux dkms ... kernel modules 바다아이 466
145 리눅스 데스크탑 archlinux ... kernel compile 바다아이 500
현재글 리눅스 데스크탑 Find , iconv 바다아이 511
143 리눅스 데스크탑 uim qt5 ..... 바다아이 584
142 리눅스 데스크탑 archlinux wine 바다아이 503
141 리눅스 데스크탑 archlinux .... pamac ... 바다아이 494
140 리눅스 데스크탑 archlinux yaourt , ... 바다아이 492
139 리눅스 데스크탑 , ... 바다아이 615
138 리눅스 데스크탑 arch install, xfce4 , , , network setup 바다아이 570
| |






Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : New Jersey  실행시간 : 0.03647
to webmaster... gogo sea. gogo sea.