sed 或 awk:仅替换第 n 次出现的字符串

Roe*_*aar 1 bash sed awk

如何编写 a sed(或awk,或两者),它将采用以下内容:

echo '1 aa 2 2 3 bb 5 bb 2 5' | sed/awk ...
Run Code Online (Sandbox Code Playgroud)

并且只替换第n次出现的字符串?例如,第三次出现2或第二次出现bb?

因此,预期的输出将是(例如,当替换第二次出现的 时)bbreplaced

1 aa 2 2 3 bb 5 replaced 2 5
Run Code Online (Sandbox Code Playgroud)

输入字符串、替换字符串,n可以是任意输入。

sse*_*taH 8

用于sed更改第二次出现的bb

$ sed 's/bb/new-bb/2' file
1 aa 2 2 3 bb 5 new-bb 2 5
Run Code Online (Sandbox Code Playgroud)

或更改第三次出现的 2

$ sed 's/2/12/3' file
1 aa 2 2 3 bb 5 bb 12 5
Run Code Online (Sandbox Code Playgroud)