잠시만 기다려 주세요

전체검색 :  
HOME   |  여기는?   |  바다물때표   |  알림 (4)  |  여러가지 팁 (920)  |  추천 및 재미 (172)  |  자료실 (20)  |  끄적거림 (569)  |  시나리오 (760)  |  드라마 대본 (248)  |  

    리눅스 데스크탑

리눅스 데스크탑 - Find 명령만으로 모든 파일의 한글 문자 인코딩 변환하기, iconv
이 름 : 바다아이   |   조회수 : 2789         짧은 주소 : https://www.bada-ie.com/su/?541591809560
오전에 리눅스에서  수십 개 이상의 디렉터리와 백여 개 이상의 파일이 있는 곳에서
과거 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 / 7 page
번 호 카테고리 제 목 이름 조회수
200 리눅스 데스크탑 , ls . 바다아이 32
199 리눅스 데스크탑 (Ubuntu) Snap Package , snap 바다아이 100
198 리눅스 데스크탑 , , .. alsa 바다아이 174
197 리눅스 데스크탑 Ubuntu 18.04 / , , , , locale 바다아이 192
196 리눅스 데스크탑 ... 바다아이 238
195 리눅스 데스크탑 archlinux aur, yaourt ... aur . 바다아이 277
194 리눅스 데스크탑 buster nvidia 390 , 바다아이 475
193 리눅스 데스크탑 바다아이 458
192 리눅스 데스크탑 archlinux usb , pc 바다아이 448
191 리눅스 데스크탑 Disabling Snaps in Ubuntu 20.04, snap , 바다아이 743
190 리눅스 데스크탑 ppa .... ppa ... 바다아이 527
189 리눅스 데스크탑 ... ... .... 바다아이 832
188 리눅스 데스크탑 ; & && ||, | 바다아이 922
187 리눅스 데스크탑 , , , 바다아이 938
186 리눅스 데스크탑 ... 바다아이 947
185 리눅스 데스크탑 /etc/fstab 바다아이 974
184 리눅스 데스크탑 ntp , .. ... 바다아이 855
183 리눅스 데스크탑 20.04 64 , ubuntu 20.04 . hwp 바다아이 2011
182 리눅스 데스크탑 .... 바다아이 933
181 리눅스 데스크탑 pamac , ... pamac categories package error 바다아이 958
180 리눅스 데스크탑 archlinux pacman ... lock 바다아이 952
179 리눅스 데스크탑 dd 바다아이 1423
178 리눅스 데스크탑 vi, vim , .... 바다아이 1395
177 리눅스 데스크탑 ubuntu 16.04 4.14 nvidia-304 ... 바다아이 1293
176 리눅스 데스크탑 nvidia ... 바다아이 1509
175 리눅스 데스크탑 .... 16.04 libssl1.1 ... ubuntu kernel install 바다아이 1462
174 리눅스 데스크탑 testdisk 바다아이 2068
173 리눅스 데스크탑 바다아이 1950
172 리눅스 데스크탑 Compiling nVidia 304.137 on Ubuntu 18.04 바다아이 2189
171 리눅스 데스크탑 lightdm , , Lightdm not starting on boot ?? 바다아이 1954
| |








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