"संयुक्त राष्ट्र-एएनएसआई-फाय" लॉग कैसे करें?


10

हाल ही में कमांड लाइन टूल द्वारा अपने लॉग आउटपुट में फैंसी एएनएसआई रंगों का उपयोग करने की प्रवृत्ति हुई है (उदाहरण के लिए, एनपीएम और नोड्ज के उपकरण, आरवीएम, डॉकटर और कुछ अन्य "आधुनिक" टूल)।

यह स्क्रीन (*) पर पढ़ने के लिए अच्छा है, लेकिन इतना अच्छा नहीं है जब आप आउटपुट को एक लॉग फ़ाइल में या एक ट्रांसपोर्ट के माध्यम से करना चाहते हैं जो एएनएसआई को अच्छी तरह से संभाल नहीं करता है, जैसे विभिन्न दूरस्थ निष्पादन उपकरण और वेब आधारित निगरानी समाधान। बहुत से अधिक परिपक्व उपकरणों में कम से कम यह पता लगाने की शालीनता थी कि आउटपुट टीटीवाई और अक्षम रंग नहीं है, लेकिन उन नए "उपयोगकर्ता के अनुकूल" सीएलआई के साथ नहीं - जो मुझे पाइपिंग से एएनएसआई रंगों से छुटकारा पाने की कोशिश करता है। एक और प्रक्रिया के माध्यम से उत्पादन।

एसईडी-आईएनजी आउटपुट के माध्यम से s/\x1B\[[0-9]*\w//gलगता है कि काम पूरा हो गया है, लेकिन क्या एक क्लीनर दृष्टिकोण है तो बस मेरी सभी लिपियों में नियमित अभिव्यक्ति को कॉपी करें?

(*) कम से कम जब तक टूल आपके डार्क बैकग्राउंड टर्मिनल पर गहरे लाल रंग में त्रुटियों को प्रदर्शित करने की कोशिश करता है।


2
देखें: unix.stackexchange.com/questions/14684/... - unix.stackexchange.com/questions/111899/... stackoverflow.com/questions/17998978/... superuser.com/questions/380772/... - 4 सवालों के बीच से अधिक 3 साइटों पर 3 साल की अवधि के लिए हमारे पास केवल एक उपकरण का उपयोग करने के लिए उत्तर मिले हैं जो रेगेक्स प्रतिस्थापन / हटाने का काम करता है। मुझे लगता है कि वहाँ कुछ बेहतर नहीं है।
Zoredache

बहस के लिए लगता है कि केवल एक चीज के बारे में है जो regex किस स्थिति के लिए सबसे अच्छा है।
Zoredache

1
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?- '/ usr / स्थानीय / बिन / stripttycolor.sh` नामक एक फ़ाइल में अपने सफाई फिल्टर को बचाने या कुछ और? इस तरह आप regex एक ही स्थान पर सीमित है?
Zoredache

3
यदि आप जानते हैं कि आप किसी फ़ाइल पर आउटपुट लिख रहे होंगे, तो सबसे आसान काम (एनपीएम के लिए) --no-colorध्वज के साथ चलना है । कई अन्य कमांडों में भी इसी तरह के झंडे हैं।
मोशे काट्ज़

@MosheKatz: दुर्भाग्य से सभी कमांड उदाहरण के लिए नहीं हैं bower
गूस

जवाबों:


1

"ansifilter -p" आपके लिए उपयोगी हो सकता है ...

यह फेडोरा रेपो में है; -p सादा आउटपुट निर्दिष्ट करता है:

Name        : ansifilter
From repo   : updates
Summary     : ANSI terminal escape code converter
URL         : http://www.andre-simon.de/doku/ansifilter/ansifilter.php
License     : GPLv3+
Description : Ansifilter handles text files containing ANSI terminal escape codes.
            : The command sequences may be stripped or be interpreted to generate formatted
            : output (HTML, RTF, TeX, LaTeX, BBCode).

अच्छी तरह से काम करता है, अब मुझे बस इसे उबंटू के लिए पैक करने की आवश्यकता है :-)
Guss
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.