Basit yorum:
En az bir PATTERN oluşumunu içeren ilk satırda yoksaymak ve satırı olduğu gibi yazdırmak istiyorsunuz. En az bir PATTERN oluşumunu içeren ikinci satırda, PATTERN'nin ilk örneğini DEĞİŞTİRME ile değiştirmek istersiniz. En az bir PATTERN oluşumunu içeren üçüncü satırda, satırı olduğu gibi yazdırmak istiyorsunuz. En az bir PATTERN oluşumunu içeren dördüncü satırda, PATTERN'nin ilk örneğini DEĞİŞTİRME ile değiştirmek istersiniz. Ve bunun gibi. PATTERN ile eşleşmeyen çizgiler değiştirilmeden yazdırılmalıdır.
Bu Sed ile kolayca yapılabilir:
sed -e '/PATTERN/ { :inside' -e 'n;s//REPLACEMENT/;t' -e 'b inside' -e '}'
Veya daha az boşluk ve daha kısa bir etiketle:
sed -e '/PATTERN/{:i' -e 'n;s//REPLACEMENT/;t' -e 'b i' -e '}'
DÜZENLEME: Sadece soruyu tekrar okudum ve daha zor yorumu gördüm:
İlk oluşumla aynı satırda olsa da olmasa da, belgenin tamamındaki ikinci DİKİŞ ÇEŞİDİ DEĞİŞTİRME ile değiştirin. Birinci ve üçüncü olayları değiştirmeden bırakın. Vb.
Bunun Sed ile de yapılabileceğine inanıyorum, ancak çok daha zor ve kullanılacak düzenli ifadeye bağlı olduğuna inanıyorum. Bir şey üzerinde çalışıp yayınlamaya çalışacağım, ancak bu cevabın şimdilik basit versiyonda durmasına izin vereceğim.
sed -e 'n;s/2004-2009/6e législature/g'
sorunumu çözen hizmetçi oldum .