在UNIX中的文件的每一行中,在第N次出现后替换所有出现的字符

use*_*729 2 unix string replace sed character

假设我有一个文档,其中所有行的格式如下:

1;23;3453;12312;32423;qwrewre;werwer
ert1;23;jdkj;seiuryy8743;874w65;hjfd;1234
df;23;3453;12312;sdjh;qwrewre;werwer
Run Code Online (Sandbox Code Playgroud)

如何使用sed在第二次出现分号(;)后管道(|)替换全部,以便文档看起来像:

1;23;3453|12312|32423|qwrewre|werwer
ert1;23;jdkj|seiuryy8743|874w65|hjfd|1234
df;23;3453|12312|sdjh|qwrewre|werwer
Run Code Online (Sandbox Code Playgroud)

我尝试使用,sed 's/;/|/19g但用管道替换了所有的分号.

感谢您的帮助.

jay*_*ngh 6

通过做这个:

$ echo '1;23;3453;12312;32423;qwrewre;werwer' | sed 's/;/|/3g'
1;23;3453|12312|32423|qwrewre|werwer
Run Code Online (Sandbox Code Playgroud)