Просте тлумачення:
У першому рядку, що містить принаймні одне виникнення PATTERN, ви бажаєте проігнорувати його та надрукувати рядок як є. У другому рядку, що містить щонайменше одне виникнення PATTERN, ви хочете замінити перший екземпляр PATTERN заміною. На третьому рядку, що містить щонайменше одне виникнення PATTERN, ви хочете надрукувати рядок як є. У четвертому рядку, який містить щонайменше одне виникнення PATTERN, ви хочете замінити перший екземпляр PATTERN заміною. І так далі. Рядки, які не відповідають PATTERN, слід друкувати без змін.
Це легко зробити за допомогою Sed так:
sed -e '/PATTERN/ { :inside' -e 'n;s//REPLACEMENT/;t' -e 'b inside' -e '}'
Або з меншим пробілом і коротшою міткою:
sed -e '/PATTERN/{:i' -e 'n;s//REPLACEMENT/;t' -e 'b i' -e '}'
EDIT: Я просто перечитав питання і помітив більш складне тлумачення:
Замініть друге виникнення PATTERN у всьому документі ЗАМОВЛЕННЯ, незалежно від того, відбувається воно в тому ж рядку, що і перше виникнення, чи ні. Перше і третє випадки залиште без змін. І т.д.
Я вважаю, що це можна зробити і з Sed, хоча це набагато складніше, і я вважаю, що це залежить від регулярного вираження, яке буде використано. Я спробую щось розробити і опублікувати, але поки я дам цю відповідь простою версією, що є вище.
sed -e 'n;s/2004-2009/6e législature/g'
яка вирішила мою проблему.