동일한 파일 이름을 유지하면서 디렉토리의 .xml 파일을 UTF-8로 대량 변환하는 방법 있으며 UTF-8로 모두 원합니다. 개별적으로 변환하는 코드를

ISO-8859-1로 인코딩 된 많은 .xml 파일이 있으며 UTF-8로 모두 원합니다.

개별적으로 변환하는 코드를 알아 냈습니다.

iconv -f ISO-8859-1 -t UTF-8 filename.xml > newfilename.xml

잘 작동합니다.

내가 알고 싶은 것은 셸 스크립트를 작성하여 디렉토리의 모든 .xml 파일을 자동으로 정리 한 다음 이전 파일을 새로운 변환 파일로 바꾸지 만 여전히 동일한 파일 이름을 유지하는 방법입니다.

쉘 스크립팅을 처음 사용하므로 도움을 주시면 감사하겠습니다.



답변

bash 쉘의 명령 줄 에서이 작업을 수행 할 수 있습니다

for i in *.xml; do
    iconv -f ISO-8859-1 -t UTF-8 "$i" > "$i.1" && mv "$i.1" "$i"
done

기본적으로 모든 xml 파일을 가져와 Iconv를 통해 filname.xml.1에 넣은 다음 해당 파일을 원래 파일 이름으로 다시 옮깁니다.

iconv를 간략히 살펴보고 여기에 무엇이 있어야하는지 (GNU 버전을 사용하는 경우)

for i in *.xml; do
    iconv -sc -f ISO-8859-1 -t UTF-8 "$i" > "$i.1" && mv "$i.1" "$i"
done

-s 옵션은 경고를 끄고 -c 옵션은 출력에서 ​​유효하지 않은 문자를 생략합니다.