अद्यतन: मैंने CPAN से मॉड्यूल HTML :: FromANSIperl
का उपयोग करके एक विधि जोड़ी है .. इसे स्थापित करने के लिए, बस इसे एक निर्देशिका में निकालें, और रूट के रूप में चलाएं: उस निर्देशिका से। आपके अनुरोध के अनुरूप विशेष सुविधा एक स्क्रिप्ट कहलाती है । दिलचस्प रूप से पर्याप्त है, यह फिल्मनामों में ओवरलेड के बाद उसी नुकसान का रंग दिखाता है , जैसा कि एलिश-शेल स्क्रिप्ट करता है ... यहां एक उदाहरण उपयोग है: perl -MCPAN -e 'install HTML::FromANSI'
ansi2html
k
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
यहाँ HTML आउटपुट है। जैसा कि फ़ायरफ़ॉक्स में देखा गया है:
यहाँ एक तरीका है एक emacs elisp-shell स्क्रिप्ट का उपयोग ... उदाहरण के लिए, htmlize ... Emacs को चलाने की आवश्यकता नहीं है।
मैंने मूल रूप से एक काले रंग की पृष्ठभूमि पर इसका परीक्षण किया था, लेकिन मैंने देखा कि किसी कारण से, एक सफेद पृष्ठभूमि किसी भी तरह से शुरू किए गए एस्केप कोड्स के साथ अच्छी तरह से नहीं खेलती है \e[K
, जो कि ERASE_LINE (टर्मिनल आउटपुट की वर्तमान रेखा को मिटा दें) लगता है । मैंने इस एस्केप कोड को हटाने के लिए एक लाइन जोड़ी है। यह अब एक सफेद पृष्ठभूमि के लिए काम करता है।
यहाँ रंग हाइलाइटिंग ls
के grep
लिए आगे हाइलाइट किए जाने से रंग हाइलाइटेड आउटपुट का एक उदाहरण है ।
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
यह elsip-shell
स्क्रिप्ट है।
#!/bin/sh
":"; exec /usr/bin/emacs -Q --script "$0" -- "$@" # -*-emacs-lisp-*-
(require 'ansi-color) (require 'htmlize)
(find-file (setq path-in (cadr argv)))
(ansi-color-apply-on-region (point-min) (point-max))
(switch-to-buffer (buffer-name (htmlize-buffer)))
(write-file (concat path-in ".html"))
यहाँ फ़ायरफ़ॉक्स में html आउटपुट का एक नमूना दिया गया है ... अगर मुझे समय मिलता है, तो मैं आगे ANSI कोड के मुद्दे को देखूंगा। जहां लाल k
हरे फाइलनामों को ओवरलैप करता है, लेकिन यह केवल वहाँ है क्योंकि grep के लिए एक जल्द से जल्द परीक्षण regex चुना ... (शायद यह कुछ \e[K
प्रभाव है ...