Diğer çözümler normal ifade sözdizimlerini karıştırır. Hem arama hem de değiştirme için perl / PCRE kalıplarını kullanmak ve yalnızca eşleşen dosyaları işlemek için, bu oldukça iyi çalışır:
grep -rlZPi 'match1' | xargs -0r perl -pi -e 's/match2/replace/gi;'
burada match1
ve match2
genellikle aynıdır, ancak match1
yalnızca ikame ile ilgili daha gelişmiş özellikleri kaldırmak için basitleştirilebilir, örneğin yakalama grupları.
Çeviri: grep
özyinelemeli olarak ve dosya adındaki herhangi bir özel karakteri korumak için nul ile ayrılmış dosyaları yinelemeli olarak listeleyin ve ardından xargs
nul ile ayrılmış bir liste bekleyen dosya adlarını ekleyin, ancak hiçbir ad alınmazsa hiçbir şey yapmaz, ve perl
eşleşmelerin bulunduğu satırların yerine geçebilir .
İkili dosyaları yoksaymak için I
anahtarını ekleyin grep
. Harf duyarlı tutması için, açılan i
geçişe grep
ve i
ikame ekspresyonuna bağlı bayrak, ancak değili
üzerinde anahtar perl
kendisi.