2012-01-31 8 views
12

मैं बस सोच रहा था कि मुझे एक पाठ फ़ाइल पढ़ने के लिए टर्मिनल में क्या कमांड डालना होगा, उन सभी पंक्तियों को खत्म करें जिनमें कोई निश्चित कीवर्ड नहीं है, और फिर उन पंक्तियों को एक नई फ़ाइल पर प्रिंट करें। उदाहरण के लिए, कीवर्ड "सिस्टम" है। मैं उन सभी लाइनों को मुद्रित करने में सक्षम होना चाहता हूं जिनमें सिस्टम एक नई अलग फ़ाइल पर है। धन्यवादटर्मिनल कमांड एक विशिष्ट शब्द वाली रेखाओं को खोजने के लिए?

उत्तर

18

grep आपका मित्र है।

उदाहरण के लिए, आप कर सकते हैं:

grep system <filename> > systemlines.out 

आदमी ग्रेप और आपको अतिरिक्त उपयोगी जानकारी के साथ-साथ (पूर्व प्राप्त कर सकते हैं: लाइन नंबर, 1 + लाइनों से पहले, 1 + लाइनों के बाद, निषेध - अर्थात्: सभी लाइनें जिनमें grep, आदि शामिल नहीं है ...)

यदि आप विंडोज चला रहे हैं, तो आप या तो cygwin इंस्टॉल कर सकते हैं या आप grep के लिए Win32 बाइनरी भी पा सकते हैं।

+0

डिफ़ॉल्ट grep द्वारा याद रखें केस संवेदनशील –

+2

है, तो आप केस को असंवेदनशील बनाने के लिए 'grep -i' का उपयोग कर सकते हैं, लेकिन मुझे विश्वास नहीं है कि यह एक आवश्यकता थी। –

-1

grep "प्रणाली" फ़ाइल नाम> नई फ़ाइल नाम

आप इसे थोड़ा चालाक "dysystemic" जैसे शब्दों के साथ लाइनें शामिल नहीं करने के लिए बनाने के लिए चाहते हो सकता है, लेकिन यह एक अच्छी जगह शुरू करने के लिए है।

+0

ध्यान दें कि grep का '-w' विकल्प खोज अभिव्यक्ति को "संपूर्ण शब्द" होने के लिए मजबूर करेगा, यानी, व्हाइटस्पेस द्वारा सीमित (लाइन की शुरुआत और अंत सहित)। – ghoti

2
grep आदेश नीचे

, उर समस्या का समाधान होगा

grep -i yourword filename1 > filename2 

with -i for case insensitiveness

without -i for case sensitiveness

कैसे ग्रेप काम करता है उर सर्वर पर जानने के लिए निम्न आदेश द्वारा उर सर्वर पर आदमी पृष्ठ का संदर्भ लें

man grep 
3
grep '\<system\>' 

शब्द सिस्टम, और एक सबस्ट्रिंग के रूप में सिस्टम नहीं है, जो लाइनों की खोज करेगा।

+0

इससे भी मदद मिली! – willykao

संबंधित मुद्दे