कमांड लाइन से & टेक्स्ट को एक से अधिक दस्तावेज़ों में बदलें खोजें

Anonim

यदि आप कमांड लाइन के साथ सहज हैं और ऐसी स्थिति में हैं जहां आपको कई टेक्स्ट दस्तावेज़ों के समूह में एक शब्द, वाक्यांश, यूआरएल या चरित्र को खोजने और बदलने की आवश्यकता है, तो पर्ल काम काफी अच्छा करता है। एक साधारण कमांड स्ट्रिंग बहुत जल्दी एक समूह बैच को पाठ पर खोज और प्रतिस्थापित करेगा, चाहे वह एक ही दस्तावेज़ में हो या कई दस्तावेज़ों के समूह में फैला हो।

कमांड लाइन में कई चीजों की तरह, कोई पुष्टिकरण प्रक्रिया नहीं है, इसलिए आप यह सुनिश्चित करना चाहेंगे कि कमांड शुरू करने से पहले आपका सिंटैक्स सही ढंग से सेट हो, अन्यथा आपको एक और खोज और प्रतिस्थापन करने की आवश्यकता हो सकती है अपना टाइपो सुधारने के लिए।

बुनियादी कमांड सिंटैक्स इस प्रकार है: perl -pi -w -e 's/THIS/THAT/g;' /path/to/files.txt

एक एक शब्द उदाहरण के लिए, अगर आपको हर .txt फ़ाइल में "ओग्रे" के सभी उदाहरणों को "कॉर्नब्रेड" से बदलने की आवश्यकता है "दस्तावेज़" फ़ोल्डर में, तो आप निम्न आदेश का उपयोग करेंगे:

perl -pi -w -e 's/ogre/cornbread/g;' ~/दस्तावेज़/.txt

एक पूरे वाक्यांश को खोजने और बदलने का उदाहरण के लिए, मान लें कि हम पूरे वाक्य को बदलने जा रहे हैं “द चॉकलेट फैक्ट्री दस्तावेज़ निर्देशिका में संग्रहीत "फिल्म्स" से शुरू होने वाली .txt फ़ाइलों के समूह में "द विज़ार्ड ऑफ़ ओज़" के साथ:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/दस्तावेज़/फ़िल्म.txt

खोजने और बदलने का काम तुरंत हो जाता है। आप जाँच करने के लिए बिल्ली और ग्रेप का उपयोग करके परिवर्तन की दोबारा जाँच कर सकते हैं:

"

cat ~/Documents/Films124.txt |grep विज़ार्ड ऑफ़ ओज़"

बेशक, यह काफी उन्नत है, और हाँ, कई दस्तावेज़ों के माध्यम से बैच खोज और प्रतिस्थापित किया जा सकता है, जो कि टेक्स्ट रैंगलर और BBEdit जैसे जीयूआई ऐप के माध्यम से अधिक उपयोगकर्ता के अनुकूल तरीके से किया जा सकता है, लेकिन कभी-कभी कमांड लाइन बस तेज होती है इस तरह के त्वरित कार्यों के लिए और अन्य जो समान हैं, साथ ही इसे उपयोग करने के लिए किसी अतिरिक्त डाउनलोड की आवश्यकता नहीं है।

बेहतरीन ट्रिक के लिए लाइफहाकर को बधाई।

अपडेट: 'सेड' कमांड त्वरित खोज करने और कमांड लाइन के माध्यम से बदलने का एक और तरीका है। सीड को कवर करना ज्यादातर अन्य लेख के लिए एक विषय है, लेकिन इस कार्य के लिए sed का उपयोग करने का मूल सिंटैक्स थोड़ा सरल है और इस प्रकार याद रखना आसान है:

sed -i 's/THIS/THAT/g' /path/to/files.txt

कोई सही या गलत तरीका नहीं है, इसलिए चाहे आप पर्ल का इस्तेमाल करें या सेड का, यह आपकी निजी पसंद का मामला है।

कमांड लाइन से & टेक्स्ट को एक से अधिक दस्तावेज़ों में बदलें खोजें