【问题标题】:Replace all the occurences of a characrer after Nth occurence in every line of a file in UNIX在 UNIX 文件的每一行中替换第 N 次出现后的所有字符
【发布时间】:2014-03-31 17:38:09
【问题描述】:

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

1;23;3453;12312;32423;qwrewre;werwer
ert1;23;jdkj;seiuryy8743;874w65;hjfd;1234
df;23;3453;12312;sdjh;qwrewre;werwer

如何使用 sed 将第二次出现的 分号(;) 替换为 pipe(|) 以使文档看起来像: p>

1;23;3453|12312|32423|qwrewre|werwer
ert1;23;jdkj|seiuryy8743|874w65|hjfd|1234
df;23;3453|12312|sdjh|qwrewre|werwer

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

提前感谢您的帮助。

【问题讨论】:

    标签: string unix replace sed character


    【解决方案1】:

    通过这样做:

    $ echo '1;23;3453;12312;32423;qwrewre;werwer' | sed 's/;/|/3g'
    1;23;3453|12312|32423|qwrewre|werwer
    

    【讨论】:

    • 比我的回答好多了!不知道你可以这样指定从哪场比赛开始。
    猜你喜欢
    • 2021-08-31
    • 2018-08-11
    • 2021-12-19
    • 2018-03-24
    • 1970-01-01
    • 2018-09-08
    • 2020-03-09
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多