कई फ़ाइलों को "कैसे खोजें और बदलें"?


11

मैं grepकई फाइलों में स्ट्रिंग की खोज करने के लिए कमांड का उपयोग करता हूं । क्या "खोज और प्रतिस्थापित" के समान कुछ है?

जवाबों:


19

आप sedकमांड की तलाश कर रहे हैं । उदाहरण के लिए, वर्तमान निर्देशिका में सभी पाठ फ़ाइलों में "बिल्ली" के साथ "कुत्ते" को बदलने के लिए:

sed -i 's/dog/cat/' *.txt

1
सरल और अच्छा।
लुइस अल्वाराडो

1

मन में ख्याल आता है उदाहरण:

sed s/cat/dog/ <input >output

यह बिल्ली को एक लाइन में खोजता है और कुत्ते को फाइल इनपुट में रखता है और फाइल आउटपुट के लिए लिखता है।


1

sedसही उपकरण है; लेकिन, एक विकल्प के रूप में, आप यहां भी exकमांड का उपयोग कर सकते हैं vim:

vim -c 'args <files> | argdo %s/cat/dog/g | x'

<files>फ़ाइलों या पैटर्नों की सूची कहाँ है जिसमें आप प्रतिस्थापन करना चाहते हैं।



0

आप पूर्व मोड में विम का उपयोग कर सकते हैं:

for b in *.txt
do
  ex -sc '%s/OLD/NEW/g|x' "$b"
done
  1. % सभी लाइनों का चयन करें

  2. s विकल्प

  3. g प्रत्येक पंक्ति में सभी उदाहरणों को बदलें

  4. x सहेजें और बंद करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.