2010-09-07 14 views
7

मैं क्रम में निम्न सिंटैक्स का इस्तेमाल किया /etc"grep: लाइन बहुत लंबी" त्रुटि संदेश

(सुपर उपयोगकर्ता साइट में डेनिस विलियमसन द्वारा उत्तर)

तहत आईपी पते को खोजने के लिए, लेकिन मैं संदेश "grep मिलती है: लाइन बहुत लंबी "।

किसी को पता है कि इस संदेश को कैसे नजरअंदाज करना है और मुझे यह क्यों मिलता है?

grep -Er '\<([0-9]{1,3}\.){3}[0-9]{1,3}\>' /etc/ 
    grep: line too long 

उत्तर

5

उपयोग फ़ाइलों grep के लिए की एक सूची का निर्माण करने लगता है,

find /etc -type f -print0 | xargs -r0 grep -E '\<([0-9]{1,3}\.){3}[0-9]{1,3}\>' 

सामान्य खोज में अन्य कार्यक्रमों के लिए फाइलों की फाइल सिस्टम और इमारत सूचियों traversing का एक और अधिक आसान तरीका है।

+1

त्रुटि संदेश खोल से नहीं आता है, यानी यह एक तर्क सूची की समस्या नहीं है, जो बहुत लंबा हो गया है। – maxschlepzig

+0

हां, और ढूंढें/xargs अक्सर * उस * समस्या को हल करने के लिए उपयोग किया जाता है। यह समस्या नहीं है, लेकिन खोजने/xargs का उपयोग करके इसे हल करता है। – jmtd

+0

@jmtd खूबसूरती से काम करता है, +1। – Hazok

0

शायद आपके grep में एक बग और स्कैन है जो बहुत लंबी लाइनों के साथ एक द्विआधारी फ़ाइल (यानी दो नईलाइनों के बीच संभालने के लिए grep के लिए बहुत अधिक वर्ण हैं)। this red hat page for more details देखें (bug page)।

20

खोज/xargs समाधान मेरे लिए काम नहीं करता था, लेकिन परिणामस्वरूप एक ही त्रुटि हुई।

मैंने -I grep विकल्प (बाइनरी फ़ाइलों को अनदेखा) का उपयोग कर इस समस्या को हल किया। मेरे मामले में फाइलों की सूची में एक बाइनरी फ़ाइल होनी चाहिए, जिसमें कोई लाइनब्रैक नहीं था, इसलिए grep एक विशाल रेखा में पढ़ने की कोशिश करता है जो बहुत बड़ा है। यह मेरा अनुमान है कि इस त्रुटि का क्या अर्थ है।

मैं से विचार आया: http://web.archiveorange.com/archive/v/am8x7wI0r0243prrmYd4

यह वहाँ एक लाइन है कि बहुत लंबा है के साथ एक पाठ फ़ाइल है कि अगर निश्चित रूप से आप के लिए काम नहीं कर सकते।

+0

बस दूसरों के लिए स्पष्ट करने के लिए, विकल्प पूंजी I ("-I") भारत में है, लिमा में "एल" नहीं है। – riderchap

+0

@riderchap Glad मैंने आपकी टिप्पणी पढ़ी। मैं इसे बाद में कैप -1 के साथ आज़मा दूंगा। शोरिन से इस पर उत्तर और जेएमटी द्वारा जवाब, ऐसा लगता है कि दो मुद्दे हैं। एक मुद्दा जहां फाइलों की सूची बहुत लंबी है, तो एक समस्या एक फ़ाइल में वास्तविक रेखा बहुत लंबी थी। मेरे मामले में यह फाइलों की सूची थी और jmtd विकल्प सबसे अच्छा है। ऐसे मामले के लिए जहां फ़ाइल में रेखा बहुत लंबी है, ऐसा लगता है कि शोरिन का विकल्प सबसे अच्छा होगा, लेकिन मेरे पास कोशिश करने का कोई मामला नहीं है। यह भी संभव हो सकता है कि बाइनरी को अनदेखा करने से फ़ाइलों की सूची में अधिकतम गणना के लिए थ्रेसहोल्ड के नीचे शोरिन गिरा दिया गया। – Hazok

+1

आह! धन्यवाद। मैंने इसे लीमा के बजाय भारत की तरह देखा। – Shorin

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