잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (783)  |  추천 및 재미 (55)  |  자료실 (18)  |  끄적거림 (461)  |  시나리오 (760)  |  드라마 대본 (248)  |  

2019년 08월 17일
술을 이기려 하지 마라. 그의 강함을 인정하고 그저 겸손해 져라. 너의 이성은 그 앞에선 단지, 지푸라기 하나에 지나지 않다. - 바다아이
 




    리눅스 데스크탑

리눅스 데스크탑 - Find 명령만으로 모든 파일의 한글 문자 인코딩 변환하기, iconv
이 름 : 바다아이   |   조회수 : 895         짧은 주소 : 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
번 호 카테고리 제 목 이름 조회수
174 리눅스 데스크탑 testdisk 바다아이 147
173 리눅스 데스크탑 바다아이 234
172 리눅스 데스크탑 Compiling nVidia 304.137 on Ubuntu 18.04 바다아이 251
171 리눅스 데스크탑 lightdm , , Lightdm not starting on boot ?? 바다아이 212
170 리눅스 데스크탑 thunderbird , 바다아이 226
169 리눅스 데스크탑 usb, cdrom grub iso ... 바다아이 272
168 리눅스 데스크탑 usb, cdrom grub iso ... 바다아이 275
167 리눅스 데스크탑 dd , 바다아이 284
166 리눅스 데스크탑 , dd if=/dev/zero, . low format 바다아이 517
165 리눅스 데스크탑 freebsd ufs , linux ufs mount 바다아이 553
164 리눅스 데스크탑 Arch on WSL, archlinux libQt5Core.so.5 not found 바다아이 477
163 리눅스 데스크탑 , .... input text ... font 바다아이 586
162 리눅스 데스크탑 ... 바다아이 556
161 리눅스 데스크탑 , , .. gparted 바다아이 712
160 리눅스 데스크탑 ssh .... ssh .. 바다아이 646
159 리눅스 데스크탑 thunderbird imap , , , .. 바다아이 715
158 리눅스 데스크탑 QT GTK+ WxWidgets, gui 3... golang qt, golang gtk, golang WxWidgets 바다아이 858
157 리눅스 데스크탑 debtap , deb . 바다아이 841
156 리눅스 데스크탑 16.04 - GUI CLI 바다아이 792
155 리눅스 데스크탑 , ... 바다아이 717
154 리눅스 데스크탑 zip, rar ... 바다아이 848
153 리눅스 데스크탑 , , centos 바다아이 1989
152 리눅스 데스크탑 , , , , chage , aging 바다아이 970
151 리눅스 데스크탑 /etc/shadow ! !!, * , lock , . 바다아이 864
150 리눅스 데스크탑 tar, gzip, gz, bzip2, bz2, zip, unzip, compress, xz .... 바다아이 927
149 리눅스 데스크탑 ico , icoutils 바다아이 852
148 리눅스 데스크탑 archlinux , mirror 바다아이 835
147 리눅스 데스크탑 Kernel modules 바다아이 901
146 리눅스 데스크탑 archlinux dkms ... kernel modules 바다아이 835
145 리눅스 데스크탑 archlinux ... kernel compile 바다아이 865
| |






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