简体   繁体   English

赛后更换sed

[英]sed replacing after match

I am having a file like this: 我有一个这样的文件:

Antwerpen;stad;Antwerpen;204,51;483505;Antwerpen;Berendrecht-Zandvliet-Lillo;Deurne;Borgerhout;Merksem;Ekeren;Berchem;Hoboken;Wilrijk
Gent;stad;Oost-Vlaanderen;156,18;243366;Gent;Mariakerke;Drongen;Wondelgem;Sint-Amandsberg;Oostakker;Desteldonk;Mendonk;Sint-Kruis-Winkel;Gentbrugge;Ledeberg;Afsnee;Sint-Denijs-Westrem;Zwijnaarde
Brugge;stad;West-Vlaanderen;138,40;116741;Brugge;Koolkerke;Sint-Andries;Sint-Michiels;Assebroek;Sint-Kruis;Dudzele;Lissewege

What I am trying to achieve is after a number followed by ";" 我要实现的目标是在数字后面加上“;” followed by text: 随后是文字:

(example: 483505;Antwerpen) (例如:483505;安特卫普)

I would like to replace every ";" 我想替换每个“;” with a ", ". 带有“,”。

The result should look like this: 结果应如下所示:

Antwerpen;stad;Antwerpen;204,51;483505;Antwerpen, Berendrecht-Zandvliet-Lillo, Deurne, Borgerhout, Merksem, Ekeren, Berchem, Hoboken, Wilrijk
Gent;stad;Oost-Vlaanderen;156,18;243366;Gent, Mariakerke, Drongen, Wondelgem, Sint-Amandsberg, Oostakker, Desteldonk, Mendonk, Sint-Kruis-Winkel, Gentbrugge, Ledeberg, Afsnee, Sint-Denijs-Westrem, Zwijnaarde
Brugge;stad;West-Vlaanderen;138,40;116741;Brugge, Koolkerke, Sint-Andries, Sint-Michiels, Assebroek, Sint-Kruis, Dudzele, Lissewege

How can I achieve this using sed? 如何使用sed实现此目的?

Just use awk: 只需使用awk:

$ awk 'match($0,/[0-9];[[:alpha:]](.*)/,a) { gsub(/;/,", ",a[1]); $0 = substr($0,1,RSTART+2) a[1] } 1' file
Antwerpen;stad;Antwerpen;204,51;483505;Antwerpen, Berendrecht-Zandvliet-Lillo, Deurne, Borgerhout, Merksem, Ekeren, Berchem, Hoboken, Wilrijk
Gent;stad;Oost-Vlaanderen;156,18;243366;Gent, Mariakerke, Drongen, Wondelgem, Sint-Amandsberg, Oostakker, Desteldonk, Mendonk, Sint-Kruis-Winkel, Gentbrugge, Ledeberg, Afsnee, Sint-Denijs-Westrem, Zwijnaarde
Brugge;stad;West-Vlaanderen;138,40;116741;Brugge, Koolkerke, Sint-Andries, Sint-Michiels, Assebroek, Sint-Kruis, Dudzele, Lissewege

The above uses GNU awk for the 3rd arg to match(). 上面的代码使用GNU awk作为第三个arg以匹配()。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM