में lgrep और rgrep मुझे Emacs में greps के साथ समस्याएं आ रही हैं।एएमएक्स
ए) grep को समझ नहीं आता है। [Ch] .c और .h फ़ाइलों को खोजने के लिए। यह lgrep कमांड के साथ Emacs द्वारा प्रदान किया गया एक डिफ़ॉल्ट विकल्प है। उदाहरण .c/.h फ़ाइलों में "वैश्विक" शब्द खोज रहा है।
grep -i -nH "global" *.[ch]
grep: *.[ch]: No such file or directory
Grep exited abnormally with code 2 at Mon Feb 16 19:34:36
क्या यह प्रारूप मान्य नहीं है?
ख) rgrep मैं निम्नलिखित त्रुटि मिलती है का उपयोग करना:
find . "(" -path "*/CVS" -o -path "*/.svn" -o -path "*/{arch}" -o -path "*/.hg" -o -path "*/_darcs" -o -path "*/.git" -o -path "*/.bzr" ")" -prune -o -type f "(" -iname "*.[ch]" ")" -print0 | xargs -0 -e grep -i -nH "global"
FIND: Wrong parameter format
Grep finished (matches found) at Mon Feb 16 19:37:10
मैं जीएनयू W32 Utils साथ Windows XP (ग्रेप पर Emacs 22.3.1 उपयोग कर रहा हूँ, मिल जाए, xargs आदि)। Grep v2.5.3 और v4.2.20 खोजें।
मुझे क्या याद आ रही है?
अद्यतन:
बहुत खराब एक एकाधिक जवाब ... स्वीकार नहीं कर सकते, क्योंकि मेरी समस्याओं का हल बाहर फैले हुए हैं।
grep -i -nH "global" *.c *.h
यह पहली समस्या हल करता है। धन्यवाद लुपायाद!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
emacs वास्तव में Windows find.exe का उपयोग कर रहा था। Gnu32 को मजबूर करना दूसरी समस्या को हल करता है। धन्यवाद स्कॉटफ्रेज़र।
हालांकि, मुझे अभी भी ack पसंद है।
rgrep उपयोग करने के लिए एक आसान तरीका है: ग्रेप -r --include = \ * [ch] --exclude = \ */{सीवीएस। , .svn, arch, .hg, _darcs, .git, .bzr} -i -nH वैश्विक। –
क्या आप अपनी पोस्ट को खोज-कार्यक्रम के उत्तर को सटीक रूप से प्रतिबिंबित करने के लिए बदल सकते हैं? आपने आज मुझे कुछ कठिनाई का कारण बना दिया। अंतर डबल बैक-स्लेश की आवश्यकता है। (सेटक खोज-प्रोग्राम "सी: \\ पथ \\ \\ gnuw32 \\ find.exe") –
@ मैथ्यू टैलबर्ट, मुझे लगता है कि मार्कडाउन प्रोसेसर अतिरिक्त बैकस्लाश को निगल रहा था। मैंने इसे ठीक करने के लिए एक संपादन सबमिट किया। – Alan