2012-01-18 13 views
12

मैं User कक्षा बनाने की प्रक्रिया में था जहां विधियों में से एक get_privileges(); था।निर्देशिका में सभी फ़ाइलों में किसी शब्द के सभी घटनाओं को कैसे बदलें

कीबोर्ड में मेरे सिर बंद कर के घंटे के बाद, मैं अंत में पता चला कि पिछले सांकेतिक शब्दों में बदलनेवाला जो मैं इस विशेष डेटाबेस विरासत में मिला शब्द "विशेषाधिकार" वर्तनी के रूप में "privelages" MySQL डेटाबेस में, और इस प्रकार भी हर जगह सैकड़ों फाइलों में जो इन "निजीकरण" तक पहुंचते हैं, इस तरह से वर्तनी की जाती है।

वहाँ लिनक्स में एक तरह से (उबंटू सर्वर) है कि मैं इतना है कि मैं निपटने के लिए की जरूरत नहीं है /var/www फ़ोल्डर में हर जगह के माध्यम से जाना और "privelages" "विशेषाधिकार" के साथ कर सकते हैं, है इस टाइपो और इसके आसपास कोड के साथ?

उत्तर

27

एक बदलाव उस खाते उपनिर्देशिका में ले जाता है (untested):

find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \; 

यह होगा find/var/www के तहत सभी फ़ाइलें (नहीं निर्देशिका, -type f द्वारा निर्दिष्ट), और प्रत्येक फ़ाइल पर "विशेषाधिकार" के साथ "निजीकरण" को प्रतिस्थापित करने के लिए sed आदेश निष्पादित करें।

+8

धन्यवाद - बीएसडी sed के साथ मैक पर लोगों के लिए। आपको -i तर्क में एक एक्सटेंशन जोड़ना होगा। इस तरह: 'sed -i" "/ prive ...' – xer0x

+0

यदि आप केवल उन फ़ाइलों पर 'sed' चलाने के लिए चाहते हैं जिनमें गलत वर्तनी है (जो आप चाहते हैं कि आपकी परियोजना में हजारों फाइलें हों) , आप 'grep -l -r "निजीकरण"/var/www | कर सकते हैं xargs -I "@" sed -i/privelages/विशेषाधिकार/g '@ ' –

+0

grep का उपयोग करके और फिर sed शायद sed का उपयोग करने से भी बदतर प्रदर्शन कर रहा है, क्योंकि इसका मतलब है कि प्रत्येक फ़ाइल को खोलना और पढ़ना – cegfault

5

इस की जाँच करें: http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

cd /var/www 
sed -i 's/privelages/privileges/g' * 
+0

आपको बहुत धन्यवाद, मैं जवाब की सराहना करता हूं। –

+1

यदि आप उपनिर्देशिकाओं की पुनर्विक्रय करना चाहते हैं तो आपको एक 'ढूंढ' जोड़ने की आवश्यकता होगी, या एक खोल का उपयोग करें जो आपको सभी उपनिर्देशिकाओं में सभी फ़ाइलों को ग्लोब करने की अनुमति देता है (संकेत: '**/*' कुछ गोले में यह करता है)। यह एक एफएक्यू है; समान प्रश्नों की खोज करें। एक अशिक्षित पूर्ववर्ती से निपटने के लिए आपको सहानुभूति ... – tripleee

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

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