2011-11-30 8 views
9

मैं फ़ाइल से comm= से शुरू होने वाली सभी पंक्तियों को मुद्रित करने के लिए "awk" या "sed" का उपयोग करना चाहता हूं filex, ध्यान दें कि प्रत्येक पंक्ति है "कॉम = somthing"मैं फ़ाइल में "comm =" से शुरू होने वाली सभी पंक्तियों को मुद्रित करने के लिए "awk" या sed का उपयोग करना चाहता हूं

for example : comm=rm , comm=ll, comm=ls .... 

मैं कि कैसे प्राप्त कर सकते हैं?

+0

अपनी फ़ाइल किया जाता है कैसे? प्रति पंक्ति एक 'comm = rm'? –

+0

हां प्रति पंक्ति, प्रत्येक पंक्ति में कॉम = एक्स – wael

उत्तर

23

लाइनों कि comm=

sed -n '/^comm=/p' filex 

awk '/^comm=/' filex 

तो comm= के साथ प्रारंभ होते लाइन में कहीं भी है तो

sed -n '/comm=/p' filex 

awk '/comm=/' filex 
+0

होता है जो केवल काम करता है, यह लाइन की शुरुआत में है, अगर यह प्रत्येक पंक्ति में किसी भी स्थान पर कॉम है, तो यह कैसे काम करें, आपकी सहायता के लिए धन्यवाद जयपा – wael

+0

बस '^'प्रतीक। –

+0

यह पूरी लाइन लौट रहा है, मैं सिर्फ मैच वापस करना चाहता हूं, और इस तरह यह किया जा सकता है: grep -o '\ ', आपकी मदद के लिए धन्यवाद – wael

5

आप grep भी इस्तेमाल कर सकते हैं:

grep comm= filex 

इस प्रदर्शित करेगा सभी comm= युक्त लाइनें।

+0

@ जयपाल: सही, सही किया गया, और मैंने आपका लिंक सहेजा, धन्यवाद;) –

+1

या' grep "^ comm =" filex' से शुरू होने वाली रेखाओं से मेल खाने के लिए 'comm ='? – vefthym

2

यहाँ ग्रेप का उपयोग कर एक दृष्टिकोण है:

grep -o '\<comm=[[:alnum:]]*\>' 

यह अक्षरांकीय अक्षर से मिलकर के रूप में एक शब्द व्यवहार करता है; आवश्यकतानुसार चरित्र वर्ग का विस्तार करें।

+0

धन्यवाद मिशेल यह काम कर रहा है – wael

+2

@bob यह देखते हुए कि आपने एक टिप्पणी में कहा है कि यह केवल एक 'comm = 'प्रति पंक्ति है, यह समाधान अधिक है; सेड्रिक जूलियन से जवाब का प्रयोग करें। इसके अतिरिक्त, स्टैक ओवरफ्लो पर "धन्यवाद" कहने के लिए, आप टिप्पणी करने के बजाय उपयोगी उत्तरों को ऊपर उठा सकते हैं। –

0

तो grep उपयोग करने के लिए ठीक है, आप के लिए एक कोशिश दे सकता है:

grep -E "^comm=" file