Я пытаюсь заменить n-ное вхождение символа или строки независимо от строки, используя awk.
Итак, если наши данные были такими:
|||||||
||||||
|||||
|||
, и мы пытались заменить|с A
тогда вывод должен выглядеть следующим образом, при условии, что мы хотим заменить каждый 3-й occurance
||A||A|
|A||A|
|A||A
||A
Текущая команда awk, которую я использую, это
awk '/|/{c++;if(c==3){sub(/|/,"A");c=0}}1' test.data
и это неправильно выводит это
|||||||
||||||
A||||
|||
также данные могут выглядеть следующим образом
|||xfsafrwe|||asfasdf|
|safasf|||asfasdf||
||asfasf|||
|||
и результат, конечно, это
||Axfsafrwe||Aasfasdf|
|safasfA||asfasdfA|
|Aasfasf||A
||A
Спасибо