2010-07-23 16 views
9

Có cách nào tôi có thể làm một cái gì đó như sau bằng cách sử dụng chuỗi công cụ Linux tiêu chuẩn?Tìm/Thay thế htmlentities bằng cách sử dụng chuỗi công cụ Linux chuẩn?

Hãy nói rằng nguồn tại example.com/index.php là:

Hello, & world! " 

Làm thế nào tôi có thể làm một cái gì đó như thế này ...

curl -s http://example.com/index.php | htmlentities 

... đó sẽ in ra sau :

Hello, & world! " 

Chỉ sử dụng chuỗi công cụ Linux chuẩn?

Trả lời

18

Sử dụng recode.

$ echo 'Hello, & world! "' | recode HTML_4.0 
Hello, & world! " 

EDIT: Bằng cách này, recode cung cấp chuyển đổi khác nhau tương ứng với các phiên bản khác nhau của HTML và XML, vì vậy bạn có thể sử dụng ví dụ HTML_3.2 thay vì HTML_4.0 nếu bạn có tài liệu HTML thực sự cũ. Chạy recode -l sẽ liệt kê tất cả danh sách đầy đủ các bộ ký tự được chương trình hỗ trợ.

+1

'$ man recode' Không bài hướng dẫn về recode' $ loại recode' bash: type: recode: không tìm thấy (không phải nói nó không phải là tuyệt vời, nhưng nó là một phần của toolchain tiêu chuẩn?) –

+0

@Stephen: Bạn phải cài đặt nó trước. – Cam

+0

@Stephen P: Rõ ràng là nó không được cài đặt trên máy tính của bạn. Nó có thể gây tranh cãi (AFAIK) có hay không 'recode' là một phần của chuỗi công cụ chuẩn, nhưng nó rất phổ biến, và nếu nó không được coi là một phần của chuỗi công cụ, tôi nghi ngờ rằng mọi thứ có thể thực hiện công việc. –

5
alias decode="php -r 'echo html_entity_decode(fgets(STDIN));'" 

$ echo 'Hello, & world! "' | decode 
Hello, & world! " 
+0

Điều này thật tuyệt, vì vậy +1. Nó không thực sự trả lời câu hỏi của tôi mặc dù - Tôi đang tìm kiếm một cái gì đó dọc theo dòng của những gì David cung cấp. – Cam

+0

cũng cảm ơn, tôi đã kết thúc bằng cách sử dụng cả hai câu trả lời như php được bao gồm trên máy Mac, nếu không nó recode. –