मेरे पास इस तरह का एक उदाहरण / etc / passwd फ़ाइल है:
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
मैं सभी उपयोगकर्ताओं को एक होम फ़ोल्डर के साथ सूचीबद्ध करने का प्रयास कर रहा हूं /home/
।
मैंने लिखा
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
जहाँ e.txt पाठ मैंने यहाँ कॉपी किया है।
मैं समझता हूं कि बैकस्लैश के साथ एक समस्या है जो पलायन चरित्र है, लेकिन मैं इसे कैसे ठीक करूं ताकि मैं उन्हें एक कमांड की एक पंक्ति में सूचीबद्ध कर सकूं?
grep home e.txt | cut -d ":" -f 1
। आपके यूयूओसी पुरस्कार के लिए बधाई। हालांकि, यह एक अच्छा समाधान नहीं है। क्या होगा अगर एक सेवा "होमबैकअप" है जो डेमॉन के नाम पर एक अलग उपयोगकर्ता के तहत चलती है? वह झूठा सकारात्मक है।
cat > tool
इस तरह की कमांड लाइनों के प्रकार का उपयोग करता हूं क्योंकि यह बाएं से दाएं प्रवाह को बनाए रखने से स्पष्टता में सुधार कर सकता है पाइप श्रृंखला के इनपुट-प्रोसेसिंग-आउटपुट के। यह है कम कुशल, लेकिन लगभग हमेशा न्यूनतम इसलिए। यह एक प्रगति पट्टी को भी जोड़ता है जहां अंतःक्रियात्मक रूप से बहुत स्पष्ट रूप से चलने के दौरान प्रासंगिक और उपयोगी होता है (बस अगर यह स्थापित है तो उसके cat
साथ बदलें pv
)।
cat
और जैसेawk
या जैसे टूल को पाइप नहीं करता हैsed
, क्योंकि उन्हें एक तर्क के रूप में फ़ाइल नाम दिया जा सकता है।