GNU sed ile:
find . -type f -print0 | xargs -0 sed -i /KeyWord/d
Bir OSX sed ile:
find . -type f -print0 | xargs -0 sed -i '' /KeyWord/d
İlk komut findtüm standart dosyaları bulur (dizinler, kanallar vb. Değil), bunları birbirinden ayırarak yazdırır \0(böylece dosya adları boşluklar, yeni satırlar vb. İçerebilir).
İkinci komut xargs, çıktısını okur, findbir ayırıcıya dayalı bir liste yakalar ( \0nedeniyle -0), sed -i [...]listeden eklenen parametrelerle çağırır ( sedparametrelerin maksimum uzunluğu sınırlı olduğu için çok fazla dosya varsa birden çok kez çağrılacaktır) her çağırma).
sedYerinde komutu değiştirir ( -i).
Gelince /KeyWord/d, normal ifadeyi içeren satırları siler KeyWord.
sed(Basit ama olağandışı) sözdizimini doğru bir şekilde anlamayı öğrenmeli ve burada yer alan araçlar hakkında daha fazla bilgi için uygun manajlara bakmalısınız.
Ve tanıtmak istediğim gibi zsh, genişletilmiş globs ile çözüm:
sed -i /KeyWord/d **/*(.)