Daha fazla arama deseniniz varsa, bunları bir dosyaya kaydedebilir ve değiştirmeleri oradan okuyabilirsiniz. Örneğin, bunların aşağıdakilerin içeriği olduğunu varsayalım replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
Daha sonra N değişikliklerinin bir listesini okuyabilir ve bunları bununla değiştirebilirsiniz:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
NOTLAR:
- Bu, arama dizelerinizin boşluk içermediğini ve garip karakterlerin kaçması gerektiğini varsayar
replacements.txt
.
sed
Birçok değiştirme işleminiz varsa, her değiştirme için bir tane çalışacaktır .
- Biraz daha zaman alacağına aldırmazsanız, rastgele sayıda değiştirmeyle (binlerce veya milyonlarca veya herhangi bir şey) başa çıkabilir.
Başka bir seçenek, yukarıdakileri sed
komut dosyası olarak yazmak olacaktır :
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
Daha sonra komut dosyasını dosyanızda çalıştırabilirsiniz ve tüm değiştirmeleri tek seferde yapar:
sed -f replace.sed infile.txt