2010-07-23 12 views
9

C'è un modo per fare qualcosa di simile a quanto segue usando la toolchain standard di Linux?Trova/Sostituisci htmlentities usando la toolchain standard di Linux?

Diciamo che il fonte presso example.com/index.php è:

Hello, & world! " 

Come posso fare qualcosa di simile ...

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

... che sarebbe stampare il seguente :

Hello, & world! " 

Utilizzare solo la toolchain standard di Linux?

risposta

18

Utilizzare recode.

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

EDIT: A proposito, recode offre diverse conversioni diverse corrispondenti a diverse versioni di HTML e XML, in modo da poter utilizzare per esempio HTML_3.2 anziché HTML_4.0 se si dispone di un documento HTML molto vecchio. L'esecuzione di recode -l elencherà tutta la lista completa di set di caratteri supportati dal programma.

+1

'$ man recode' Nessun inserimento manuale per Recode' $ Tipo recode' bash: Tipo: recode: non trovato (non vuol dire che non è eccellente, ma è parte della toolchain norma?) –

+0

@Stephen: devi prima installarlo. – Cam

+0

@Stephen P: Evidentemente non è installato sul tuo computer. È discutibile (AFAIK) se "recode" fa parte o meno della toolchain standard, ma è molto comune, e se non è considerato parte della toolchain, dubito che tutto ciò che è potrebbe fare il lavoro. –

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

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

Questo è bello, quindi +1. In realtà non risponde alla mia domanda - stavo cercando qualcosa sulla falsariga di ciò che David ha fornito. – Cam

+0

grazie anche, ho finito per usare entrambe le risposte come php è incluso su Mac, altrimenti è ricodifica. –