잠시만 기다려 주세요

     '애도와 추모가 책임있는 사람들에게 면죄부를 주어서는 안됩니다. -더불어 민주당 국회의원 김용민-'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (790)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 데스크탑

리눅스 데스크탑 - Find 명령만으로 모든 파일의 한글 문자 인코딩 변환하기, iconv
이 름 : 바다아이   |   조회수 : 10004         짧은 주소 : 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 / 9 page
번 호 카테고리 제 목 이름 조회수
248 리눅스 데스크탑 6.14 ... experimental .. !! !!! .. 바다아이 305
247 리눅스 데스크탑 testing, sid, backports surfshark vpn , ...  바다아이 301
246 리눅스 데스크탑 libreoffice hwp ... libreoffice-h2orestart hwp ... 바다아이 388
245 리눅스 데스크탑 .... wine install 바다아이 356
244 리눅스 데스크탑 surfshark vpn .... ..... 바다아이 346
243 리눅스 데스크탑 debian ... 바다아이 448
242 리눅스 데스크탑 unstable testing stable .... ... 바다아이 769
241 리눅스 데스크탑 6.12.9+bpo-amd64... VirtualBox 7.1.6 for Linux.. amd-v .... SVM(Secure Virtual Machine) 바다아이 439
240 리눅스 데스크탑 uuid .... fstab uuid ... blkid 바다아이 465
239 리눅스 데스크탑 ... path ... 바다아이 456
238 리눅스 데스크탑 debian backports .... ?? 바다아이 473
237 리눅스 데스크탑 .... . ... chrome password 바다아이 537
236 리눅스 데스크탑 Wine completely broken - wine: could not load kernel32.dll, status c0000135 바다아이 475
235 리눅스 데스크탑 ... ... ... 바다아이 1425
234 리눅스 데스크탑 debian trixie media-downloader ... ... 바다아이 533
233 리눅스 데스크탑 .... qt5 build-essential 바다아이 477
232 리눅스 데스크탑 archlinux lightdm .... 바다아이 561
231 리눅스 데스크탑 ... archinstall... .. 바다아이 669
230 리눅스 데스크탑 .... pacman -Suy ... 바다아이 866
229 리눅스 데스크탑 archlinux... Libalpm.so.14 error after updating to pacman 7 바다아이 952
228 리눅스 데스크탑 ... 바다아이 1598
227 리눅스 데스크탑 .... 바다아이 1373
226 리눅스 데스크탑 libreoffice hwp , ... 바다아이 1681
225 리눅스 데스크탑 uefi .... . 바다아이 1835
224 리눅스 데스크탑 mkfs ... .. 바다아이 1775
223 리눅스 데스크탑 ... hd 4600.. Ubuntu Intel graphics driver install, 바다아이 4110
222 리눅스 데스크탑 virtualbox ... ntfs.sys ... virtualbox .. 바다아이 4260
221 리눅스 데스크탑 , 10 ... archlinux, window10 dual-boot 바다아이 4058
220 리눅스 데스크탑 , .... ... 바다아이 5108
219 리눅스 데스크탑 Installation from WineHQ's repo, debian wine ... 바다아이 5599
| |









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