문제

나는 OS X 10.5.5에있다 (나는별로 중요하지는 않지만)

나는 한 문자 등에 두 배의 백 크게, 타원 ( "...")과 같은 멋진 문자가있는 텍스트 파일 세트가 있습니다.

이 파일을 좋은 오래된 평원 7 비트 ASCII로 변환해야합니다. 바람직하게는 캐릭터 의미를 잃지 않고 (즉, 타원을 세 기간, 백 크기로 변환) 일반적인 "S 등으로 변환합니다).

스마트 명령 줄 (BASH) 도구/스크립트를 조언하십시오.

도움이 되었습니까?

해결책

그만큼 Elinks 웹 브라우저는 유니 코드 엔티티를 ASCII 동등 물로 변환하여 "for"-"-"... "for"… "등을 제공합니다. Python 모듈이 있습니다. 파이썬 링크 동일한 변환 테이블을 사용하면 다음과 같이 쉘 필터로 전환하는 것이 중요합니다.

#!/usr/bin/env python
import elinks
import sys
for line in sys.stdin:
    line = line.decode('utf-8')
    sys.stdout.write(line.encode('ASCII', 'elinks'))

다른 팁

아이콘 내가 아는 한 그렇게해야합니다. 하나의 입력 문자가 Ellipsis 예제와 같은 여러 출력 문자가 될 수있는 전환을 처리하는 방법에 대해 100% 확실하지 않습니다.

업데이트 : 시도해 보았는데 작동하지 않는 것 같습니다. "더 작은"인코딩에서 타원 (내가 사용한 테스트 문자)을 표현하는 방법을 모르기 때문에 실패합니다. UTF-8에서 UTF-16으로 변환하는 것은 괜찮 았습니다. :/ 여전히 ICONV는 더 조사 할 가치가있을 수 있습니다.

음역 도구를 살펴보십시오. 좋아요 Unidecode (Perl에서), 다른 언어로 포트하기는 어렵지 않습니다.

ICONV를 사용하여 UTF-16LE (시행 착오에서 알 수 있듯이 Little-Endian)에서 파일을 변환했습니다.

 cat utf16file.txt |iconv -f UTF-16LE -t ASCII > asciifile.txt

문자를보고 올바른 출력을받을 수 있도록 HexDump를 통해 파이프를 가질 수 있습니다. 터미널은 UTF-16을 해석하는 방법을 알고 올바르게 표시하여 파일에서 '고양이'를 말할 수는 없지만 말할 수는 없습니다. :

cat utf16file.txt | iconv -f UTF-16LE -t ASCII | hexdump -C 

이것은 HEX 숯 코드와 ASCII 문자가 오른쪽에있는 레이아웃을 보여 주며 "매개 변수"에서 -f "에서 다른 인코딩을 시도하여 처리하는 내용을 파악할 수 있습니다.

'iconv -l'을 사용하여 ICONV가 시스템에서 사용할 수있는 문자 세트를 나열하십시오.

어제 또는 전날 파일 이름 변경에 관한 질문이 있었는데 Perl 스크립트를 보여주었습니다. rename.pl 그것은 작업에 사용할 수 있습니다. 문제 영역은 홀수 문자가 어떻게 인코딩되는지 알고 올바른 음역 순서를 고안하는 것입니다. 나는 아마도 모든 매핑을 순차적으로 수행 한 스크립트의 적응으로 그것을 할 것입니다. 한 번에 한 캐릭터를하는 것은 과도하게 어리석은 일입니다.

질문은 다음과 같습니다. 접두사/접미사로 이름을 바꾸는 방법

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top