잠시만 기다려 주세요

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

    리눅스 데스크탑

리눅스 데스크탑 - Find 명령만으로 모든 파일의 한글 문자 인코딩 변환하기, iconv
이 름 : 바다아이   |   조회수 : 2647         짧은 주소 : 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
번 호 카테고리 제 목 이름 조회수
198 리눅스 데스크탑 , , .. alsa 바다아이 83
197 리눅스 데스크탑 Ubuntu 18.04 / , , , , locale 바다아이 115
196 리눅스 데스크탑 ... 바다아이 156
195 리눅스 데스크탑 archlinux aur, yaourt ... aur . 바다아이 183
194 리눅스 데스크탑 buster nvidia 390 , 바다아이 393
193 리눅스 데스크탑 바다아이 376
192 리눅스 데스크탑 archlinux usb , pc 바다아이 369
191 리눅스 데스크탑 Disabling Snaps in Ubuntu 20.04, snap , 바다아이 574
190 리눅스 데스크탑 ppa .... ppa ... 바다아이 448
189 리눅스 데스크탑 ... ... .... 바다아이 737
188 리눅스 데스크탑 ; & && ||, | 바다아이 819
187 리눅스 데스크탑 , , , 바다아이 839
186 리눅스 데스크탑 ... 바다아이 850
185 리눅스 데스크탑 /etc/fstab 바다아이 877
184 리눅스 데스크탑 ntp , .. ... 바다아이 762
183 리눅스 데스크탑 20.04 64 , ubuntu 20.04 . hwp 바다아이 1750
182 리눅스 데스크탑 .... 바다아이 825
181 리눅스 데스크탑 pamac , ... pamac categories package error 바다아이 841
180 리눅스 데스크탑 archlinux pacman ... lock 바다아이 843
179 리눅스 데스크탑 dd 바다아이 1285
178 리눅스 데스크탑 vi, vim , .... 바다아이 1283
177 리눅스 데스크탑 ubuntu 16.04 4.14 nvidia-304 ... 바다아이 1183
176 리눅스 데스크탑 nvidia ... 바다아이 1392
175 리눅스 데스크탑 .... 16.04 libssl1.1 ... ubuntu kernel install 바다아이 1336
174 리눅스 데스크탑 testdisk 바다아이 1944
173 리눅스 데스크탑 바다아이 1830
172 리눅스 데스크탑 Compiling nVidia 304.137 on Ubuntu 18.04 바다아이 2043
171 리눅스 데스크탑 lightdm , , Lightdm not starting on boot ?? 바다아이 1819
170 리눅스 데스크탑 thunderbird , 바다아이 1792
169 리눅스 데스크탑 usb, cdrom grub iso ... 바다아이 1828
| |








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