एक समाधान जो सभी प्रकार के पाठ को रंगने के लिए काम करता है, न कि केवल लॉगफाइल्स , एक पायथन उपकरण है, ' कॉलआउट '।
pip install colout
myprocess | colout REGEX_WITH_GROUPS color1,color2... [attr1,attr2...]
जहां रेगेक्स के समूह 1 से मेल खाने वाले 'मायप्रोसेस' के आउटपुट में कोई भी टेक्स्ट कलर 1, ग्रुप 2 के साथ कलर 2, आदि के साथ रंगीन होगा।
उदाहरण के लिए:
tail -f /var/log/mylogfile | colout '^(\w+ \d+ [\d:]+)|(\w+\.py:\d+ .+\(\)): (.+)$' white,black,cyan bold,bold,normal
यानी पहला रेगेक्स समूह (पार्न्स) लॉगफाइल में प्रारंभिक तिथि से मेल खाता है, दूसरा समूह एक पायथन फाइलनाम, लाइन नंबर और फ़ंक्शन नाम से मेल खाता है, और तीसरा समूह लॉग संदेश से मेल खाता है जो उसके बाद आता है। ऐसा दिखता है:
ध्यान दें कि लाइनें या कुछ हिस्सों का जो मेरे रेगेक्स से मेल नहीं खाते हैं, अभी भी गूँज रहे हैं, इसलिए यह 'grep --color' जैसा नहीं है - आउटपुट से कुछ भी फ़िल्टर नहीं किया गया है।
जाहिर है कि यह काफी लचीला है कि आप इसे किसी भी प्रक्रिया के साथ उपयोग कर सकते हैं, न कि केवल लॉगफ़ाइल्स को पूंछने के लिए। मैं आमतौर पर किसी भी चीज को रंगीन करने के लिए किसी भी समय मक्खी पर एक नया रेगीक्स कोड़ा करता हूं। इस कारण से, मैं किसी भी कस्टम लॉगफाइल-कलरिंग टूल में कॉलआउट करना पसंद करता हूं, क्योंकि मुझे केवल एक टूल को सीखने की जरूरत है, चाहे जो भी मैं रंग रहा हूं: लॉगिंग, टेस्ट आउटपुट, टर्मिनल में कोड के स्निपेट हाइलाइटिंग आदि।
sed
: stackoverflow.com/a/14691971/52074