मैं लिनक्स में एक मानक इनपुट स्ट्रीम से HTML विशेष संस्थाओं को आसानी से कैसे बदल सकता हूं?


9

CentOS

क्या HTML विशेष संस्थाओं को डेटा स्ट्रीम से परिवर्तित करने का एक आसान तरीका है? मैं डेटा को एक बैश स्क्रिप्ट में पास कर रहा हूं और कभी-कभी उस डेटा में विशेष इकाइयां शामिल होती हैं। उदाहरण के लिए:

"परीक्षण" & amp; परीक्षण $ परीक्षण! परीक्षण @ # $% ^ & amp; *

मुझे यकीन नहीं है कि कुछ पात्र ठीक दिखाई देते हैं और अन्य दुर्भाग्यवश, लेकिन दुर्भाग्य से, मेरे पास आने वाले डेटा पर नियंत्रण नहीं है।

मुझे लगता है कि मैं यहां SED का उपयोग करने में सक्षम हो सकता हूं, लेकिन ऐसा लगता है कि यह बोझिल होगा और संभवतः झूठी सकारात्मकता से ग्रस्त होगा। क्या कोई लिनक्स कमांड है जिसे मैं पाइप कर सकता हूं जो इस प्रकार के डेटा को डिकोड करने में माहिर है?

जवाबों:


9

PHP इसके लिए अच्छी तरह से अनुकूल है। इस उदाहरण के लिए PHP 5 की आवश्यकता है:

cat file.html | php -R 'echo html_entity_decode($argn);'

14

पर्ल आपका दोस्त है (हमेशा की तरह)। मुझे लगता है कि यह ऐसा करेगा:

perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

उदाहरण के लिए:

echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

आउटपुट के साथ:

someguy@somehost ~]$ echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
"test" & test $test ! test @ # $ % ^ & *

यह मेरे OSX10.8 लैपटॉप और एक RHEL5.something होस्ट पर काम करता है।
जेसन टैन

UTF-8 में फ़ाइल को आउटपुट करने के लिए, बिनमोड का उपयोग करें: इको "& laquo;" | perl -n -mHTML :: Entities -mutf8 -e 'binmode (STDOUT, ": utf8)"; प्रिंट HTML :: प्रविष्टियाँ :: decode_entities ($ _);)
बाज़


2

पायथन 3 के साथ:

python3 -c 'import html,sys; print(html.unescape(sys.stdin.read()), end="")' < file.html

0

स्टड से पाठ फ़ाइल लेता है:

#!/bin/bash
#
while read lin; do
  newl=${lin//&gt;/>}
  newl=${newl//&lt;/<}
  newl=${newl//&amp;/<}
  # ...other entites
  echo "$newl"
done

इसे शायद bash> = संस्करण 4 की आवश्यकता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.