'grep'

2011-02-12 17 views
7

का उपयोग करके, टैब के लिए खोजें, मैं पहले से पहले grep -P का उपयोग करता था, जब तक मुझे मशीन नहीं मिलती जहां grep को पर्ल नियमित अभिव्यक्ति समर्थन के साथ संकलित नहीं किया जाता है। अब मैं मुसीबत मिलान टैब हो रहा है: \t चरित्र,'grep'

grep -G '\t' matches a literal 't' 
grep -E '\t' matches a literal 't' 

मैं टैब का मिलान कैसे करते हैं?

उत्तर

11

ऐसा करें:

grep -G $'\t' 

अधिक जानकारी के लिए कृपया bug #23535: Grep Doesn't Support \t as a tab character देखते हैं।

+0

दरअसल, धन्यवाद:

echo -e "\t : words" | grep -G '^[[:blank:]]' echo -e "\t : words" | grep -E '^[[:blank:]]' 

हो सकता है आप इसे इस तरह उपयोग कर सकते हैं। हालांकि मुझे अपनी समस्या को हल करने के लिए -जी विकल्प की आवश्यकता नहीं थी, केवल बच निकलने वाला अनुक्रम (मेरे मामले में, इस तरह कुछ ऐसा काम करता था: grep $ '\ t' $ patternPrefix $ '\ t'morePatternData searchFile)। –

1

पर्ल-रेगुलर एक्सप्रेशन से समझते हैं '[\ t]' है, तो आप इस तरह कर सकते हैं: "अंतरिक्ष के लिए

echo -e "\t : words" | grep -P '^[\t]' 

बुनियादी-regexp और इन एक" रिक्त "(RegEx के लिए विस्तारित-regexp जरूरत "/" टैब "): सुझाव के लिए

echo -e "\t : words" | grep -E '^[[:blank:]]{2,8}' 
echo -e "\t : words" | grep -G '^[[:blank:]]\{2,8\}' 
+0

'grep -P' बहुत अच्छा है (पर्ल सिंटैक्स, तेज़ कार्यान्वयन) लेकिन दुर्भाग्यवश यह वैकल्पिक है और कुछ वितरण अभी भी इसे डिफ़ॉल्ट रूप से शामिल नहीं करते हैं। –