मेरे पास कुछ स्क्रिप्ट हैं जो रंगों के साथ आउटपुट पैदा करती हैं और मुझे एएनएसआई कोड हटाने की जरूरत है।
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
आउटपुट है (लॉग फ़ाइल में):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
मुझे नहीं पता कि ईएससी चरित्र को यहां कैसे रखा जाए, इसलिए मैंने @
इसकी जगह पर रखा ।
मैंने स्क्रिप्ट को इसमें बदल दिया:
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
लेकिन अब यह मुझे (लॉग फाइल में) देता है:
java (pid 12321) is running...@[60G[ OK ]
मैं इसे कैसे हटा सकता हूं ' @[60G
?
शायद पूरी स्क्रिप्ट के लिए रंग को पूरी तरह से अक्षम करने का एक तरीका है?
strip-ansi
: github.com/chalk/strip-ansi ।