Komut Satırından Birden Fazla Belgedeki Metni Değiştir &'yi Bulun
Komut satırı konusunda rahatsanız ve birden çok metin belgesinden oluşan bir grupta bir kelimeyi, tümceciği, URL'yi veya karakteri bulup değiştirmeniz gereken bir durumdaysanız, Perl bu işi oldukça iyi yapar. Basit bir komut dizisi, ister tek bir belgede ister birden çok belgeden oluşan bir grubu kapsayan bir metinde grup toplu bulma ve değiştirme işlemini çok hızlı bir şekilde gerçekleştirir.
Komut satırındaki pek çok şey gibi, onay işlemi yoktur, bu nedenle bir komutu başlatmadan önce sözdiziminizin doğru ayarlandığından emin olmak isteyeceksiniz, aksi takdirde başka bir bul ve değiştir işlemi yapmanız gerekebilir yazım hatanızı düzeltmek için.
Temel komut sözdizimi aşağıdaki gibidir: perl -pi -w -e 's/BU/ŞU/g;' /yol/to/files.txt
tek kelimelik bir örnek için, her .txt dosyasındaki tüm "ogre" örneklerini "cornbread" ile değiştirmeniz gerekiyorsa “Belgeler” klasöründe, aşağıdaki komutu kullanırsınız:
perl -pi -w -e 's/ogre/mısır ekmeği/g;' ~/Belgeler/.txt
tüm bir cümleyi bulma ve değiştirme örneği için, “Çikolata Fabrikası” cümlesinin tamamını değiştireceğimizi varsayalım ” Belgeler dizininde saklanan “Filmler” ile başlayan bir grup .txt dosyasında “Oz Büyücüsü” ile:
perl -pi -w -e 's/Çikolata Fabrikası/Oz Büyücüsü/g;' ~/Belgeler/Filmler.txt
Bul ve değiştir hemen yapılır. Kontrol etmek için cat ve grep kullanarak değişikliği iki kez kontrol edebilirsiniz:
"cat ~/Documents/Films124.txt |grep Oz Büyücüsü"
Kabul etmek gerekirse, bu oldukça ileri düzeydedir ve evet, birden fazla belge aracılığıyla toplu bulma ve değiştirme, TextWrangler ve BBEdit gibi GUI uygulamaları aracılığıyla daha kullanıcı dostu bir şekilde yapılabilir, ancak bazen komut satırı yalnızca daha hızlıdır bunun gibi hızlı görevler ve benzer diğerleri için, artı kullanmak için herhangi bir ek indirme gerektirmez.
Mükemmel numara için Lifehacker'a kocaman bir yaşasın.
Güncelle: 'sed' komutu, komut satırı aracılığıyla hızlı bulma ve değiştirme yapmanın başka bir yoludur. sed'i anlatmak çoğunlukla başka bir makalenin konusudur, ancak bu görev için sed'i kullanmanın temel sözdizimi biraz daha basittir ve dolayısıyla hatırlanması daha kolaydır:
sed -i 's/THIS/THAT/g' /path/to/files.txt
Doğru veya yanlış bir yol yoktur, bu nedenle Perl veya sed kullanmanız kişisel tercih meselesi haline gelir.