2009-02-23 11 views
5

Bạn sẽ chuyển đổi một tài liệu có chứa các ký tự sau đây tham chiếu đến các ký tự có thể đọc thực tế của chúng trong tập lệnh bash như thế nào?Thay đổi từ tham chiếu ký tự HTML thành utf-8 trong một tập lệnh bash tức là. ā trở thành Ã

ā á ǎ à ē é ě è ī í ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü 

Những thay đổi để a a ǎ à e e e e i i ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü

+0

stackoverflow cho phép các thực thể HTML. Có thể muốn chỉnh sửa điều đó. –

+0

Phản ứng đầu tiên của tôi là sử dụng sed, nếu chỉ là những thực thể đó. Thay thế trực tiếp nên có thể theo cách đó. Nếu bạn muốn nó làm việc cho các thực thể tùy ý, tuy nhiên, sau đó tôi không thể nghĩ ra bất cứ điều gì offhand (tôi không phải là một sh ​​người lớn, thật đáng buồn). –

Trả lời

3

Nếu bạn có quyền truy cập vào Perl thì đó là tương đối đơn giản:

perl -ne 'binmode STDOUT,":utf8";s/&#([0-9]*);/pack("U",$1)/eg;print' \ 
    document.html 

Ví dụ:

#!/bin/bash 
html2utf8() { 
    perl -ne 'binmode STDOUT, ":utf8"; s/&#([0-9]*);/pack("U",$1)/eg; print' 
} 
echo 'testing 1 ā 2 Ĭ 3 ē' | html2utf8 

Tạo:

01.
testing 1 ā 2 Ĭ 3 ē 
+0

Vâng, tôi có quyền truy cập vào perl vì vậy có lẽ là cách dễ nhất và gọn gàng nhất để làm điều đó. Trung thực Toàn bộ dự án sẽ được tốt nhất scipted trong ngọc anyway –