2013-01-12 17 views
5

मैं इस पर अटक गया हूं। मैं उन सभी लाइनों से मेल खाना चाहता हूं जो ठीक से कहें, कहें, 8 रिक्त स्थान और फिर एक डबल कोट चिह्न।grep मिलान लाइनें एन अग्रणी रिक्त स्थान

cat file.txt | grep '[[:space:]]\{8\}"' 

मैं वहां क्या गलत कर रहा हूं? यह मेल खाने वाली रेखाएं हैं जो 8 से अधिक रिक्त स्थान से शुरू होती हैं।

उत्तर

11

cat file.txt | grep '^[[:space:]]\{8\}"'

आप ^ डाल नहीं है, तो यह 8 रिक्त स्थान है जो आपके " के पास है से मेल खाएगी।

+0

आह, ज़ाहिर है! धन्यवाद! – mark

4

आप grep में पाइप cat की जरूरत नहीं है सिर्फ इसलिए पैटर्न लंगर डाले है egrep '^ {8}"' file^ चरित्र लाइन के शुरू होने से मेल खाता है।

$ cat file 
     "match" 
     no match 
    "no match" 

$ egrep '^ {8}"' file 
     "match" 

पुनरावृत्ति परिमाणक {n} यदि ऐसा है तो egrep का उपयोग या वैकल्पिक रूप से grep की -E विकल्प का उपयोग से बचने से बचने के लिए सेट विस्तारित नियमित अभिव्यक्ति का हिस्सा है।

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