जवाबों:
MacOS पर, lsGNU नहीं है lsऔर यह --color=alwaysविकल्प स्वीकार नहीं करता है कि लिनक्स उपयोगकर्ता इस कार्यक्षमता के लिए उम्मीद कर सकते हैं।
के macOS संस्करण में ls, रंगों को दो चर द्वारा नियंत्रित किया जाता है : $CLICOLORऔर $CLICOLOR_FORCE। यदि पूर्व को परिभाषित किया गया है, तो $TERMरंग द्वारा समर्थित टर्मिनल , और आउटपुट टर्मिनल के लिए है, तो यह आउटपुट जीएनयू के --color=autoविकल्प की तरह रंगीन होगा । यदि बाद वाले चर को भी परिभाषित किया जाता है, तो अंतिम स्थिति को गिरा दिया जाता है, जैसे कि GNU का व्यवहार --color=always।
तो रंग के माध्यम से पारित करने के लिए sed, आप निम्नलिखित की तरह कुछ की आवश्यकता होगी:
CLICOLOR_FORCE=1 ls -la | sed -En '/Desktop/q;p'
-Gपरिभाषित करने के बराबर है $CLICOLOR(और इसलिए पर्याप्त नहीं)
मैं आँख बंद करके अनुमान लगाऊंगा कि आपका वितरण, जैसे कई, एक उपनाम है जो नक्शे में lsहै ls --color=auto। ls -la --color=always | sed …कार्य करना चाहिए।
( autoसेटिंग बनाता है, मोटे तौर पर, lsके लिए यह है कि रंग से बच दृश्यों द्वारा एहसास है की जाँच इसके उत्पादन प्रदर्शन या नहीं, और प्रदर्शन के लिए केवल रंग में जाता है। कारण, यानी अदृश्य आदेश वर्ण, तो एक कार्यक्रम उन्हें भ्रमित कर सकते हैं फ़ाइल नाम के भाग के लिए, जैसी चीजें।)
lsहै-Gरंग के रूप में अच्छी तरह से सक्रिय करने का विकल्प है, लेकिन मुझे यकीन है कि यह कैसे एक पाइप लाइन में बर्ताव करता है नहीं कर रहा हूँ।