Linux'ta dosya içindeki metne göre arayıp silmek

Salı, Kasım 09, 2010
for dosya in $(find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin');

do

echo $dosya
rm $dosya

done
Bir klasörde binlerce dosya var. (Bir mail bombasının ardından birbirine karışmış gerçek mailler ile bomba mailler örneğin :) ) Aralarından içindeki bir metne göre ayıklayıp o dosyaları silmek istiyoruz. Buyrun size basit bir script.

find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin'

find komutu ile hangi klasörde aradığımızı, -type paramatresi ile f (file) dosya olduğunu, ayrıca dosya adı için de * ile tüm dosyaları belirttik. (* terine *.php gibi sadece belli unantılar vs. seçilebilir. Arama işlemini kısaltır bu sayede) Sonra xargs ile tüm dosya içeriklerini tek tek kontrol ettik ki içindeki metini grep ile ayıklayalım.
Sonrası dosyaları tek tek döngüye alıp sırayla silmek. Bir de silinen dosyaları ekranda görüyoruz ki yanlışlık olmasın :)
Emre KARAOĞLU tarafından saat:3:28 PM'de yazıldı. | Yazının Tamamı |

[ back home ]

Comments for Linux'ta dosya içindeki metne göre arayıp silmek

Kim ki bu Emre?

Emre KARAOĞLU
İTÜ Uzaktan Eğitim Merkezi
Ayazağa Yerleşkesi
Maslak / İSTANBUL

Günceler

Linkler

Debian GNU/Linux

Credits

Template copyright :
V4NY ONLY TEMPLATES
Powered by :
Powered by Blogger