2010-07-23 6 views
9

Есть ли способ, которым я могу сделать что-то вроде следующего, используя стандартную инструментальную цепочку linux?Найти/заменить htmlentities с помощью стандартной инструментальной линейки linux?

Скажем, источник в example.com/index.php является:

Hello, & world! " 

Как я могу сделать что-то вроде этого ...

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

... что бы напечатать следующее :

Hello, & world! " 

Использование только стандартной инструментальной линейки linux?

ответ

18

Использование recode.

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

EDIT: Кстати, recode предлагает несколько различных переходов, соответствующих различным версиям HTML и XML, так что вы можете использовать, например, HTML_3.2 вместо HTML_4.0, если у вас действительно старый HTML-документ. Запуск recode -l отобразит весь список кодировок, поддерживаемых программой.

+1

'$ человек не recode' Нет ручного ввода для Recode' $ Тип recode' Баш: Тип: перекодирования: не нашел (не сказать, что это не отлично, но это часть стандартного набора инструментов?) –

+0

@Stephen: Сначала вы должны установить его. – Cam

+0

@Stephen P: Очевидно, он не установлен на вашем компьютере. Это спорный вопрос (AFAIK) или нет 'recode' является частью стандартного набора инструментов, но это очень часто, и если она не считается частью инструментария, я сомневаюсь, что все, что может сделать эту работу. –

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

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

Это круто, поэтому +1. На самом деле это не отвечает на мой вопрос: я искал что-то вроде того, что дал Дэвид. – Cam

+0

спасибо также, я закончил тем, что использовал оба ответа, поскольку php включен на Mac, иначе он перекодирует. –

 Смежные вопросы

  • Нет связанных вопросов^_^