셸 일괄 변환 파일 인 코딩

2495 단어 Linux
평소 크로스 플랫폼 프로 그래 밍 에서 파일 인 코딩 문제 에 부 딪 힌 적 이 있다 고 믿 습 니 다. 예 를 들 어 Windows 코드 문자 인 코딩 방식 은 GB 2312 이지 만 Linux 로 넘 어가 면 utf - 8 만 지원 합 니 다. 코드 부분 에 영향 을 주지 않 지만 중국어 주석 부분 이 많 지만 어 지 러 워 서 싫 습 니 다.한 파일 을 처리 하고 다른 이름 으로 저장 하 는 것 이 귀 찮 습 니 다. 셸 스 크 립 트 를 사용 하여 파일 을 대량으로 변환 하 는 것 을 소개 합 니 다. 그 중에서 iconv 도 구 를 사용 합 니 다.
변환 도구 iconv
먼저 iconv 도 구 를 알 아 보 겠 습 니 다. iconv 명령 은 이미 알 고 있 는 문자 집합 파일 을 다른 알 고 있 는 문자 집합 파일 로 변환 할 수 있 습 니 다.지원 하 는 인 코딩 방식 은 유 니 코드 관련 인 코딩, 예 를 들 어 UTF - 8, UTF - 16 등 각국 이 사용 하 는 ANSI 인 코딩 으로 GB 2312, BIG 5 등 중국어 인 코딩 방식 을 포함한다.[^1]
iconv [옵션...] [파일...]
매개 변수
설명 하 다.
-f, --from-code=NAME
원본 텍스트 인 코딩
-t, --to-code=NAME
출력 텍스트 인 코딩
-l, --list
알 고 있 는 모든 인 코딩 집합 을 보 여 줍 니 다.
-c
출력 파일 에서 잘못된 문 자 를 생략 합 니 다.
-o, --output=FILE
출력 파일 이름
-s, --silent
출력 하지 않 음 경고
-?, --help
돕다.
-V, --version
프로그램 버 전
예: iconv -f gb2312 -t utf-8 gb.txt > utf8.txt gb 의 인 코딩 을 GB 2312 에서 UTF - 8 로 바 꾸 고 utf8. txt 로 바 꿉 니 다.
스 크 립 트 변환
입력 한 폴 더 의 GB 2312 인 코딩 cpp, h, c 파일 을 utf - 8 인 코딩 파일 로 변환 합 니 다.
#!/bin/bash
filelist=$(find $1 -name "*.cpp" -o -name "*.h" -o -name "*.c")
for file in $filelist
do
	echo $file
	iconv -f gb2312 -t utf-8 $file > tmp
	if [ $? -eq 0 ] 
	then
		mv tmp $file
	fi
done

작은 매듭
본 고 는 셸 에서 iconv 도 구 를 사용 하여 파일 인 코딩 을 대량으로 변환 하 는 방법 을 소개 한다.
참고 파일 [^ 1]:https://baike.baidu.com/item/iconv/524310?fr=aladdin

좋은 웹페이지 즐겨찾기