我有一个包含数千行的文件,如下所示
32322621661395926569;adverline;www.societe.com_societe;identite;Salarie2;fiche;btp_et_construction;CA4
32322621661395926569;adverline;www.societe.com_societe;identite;Salarie2;fiche;energy;CA4;nunuc_muchemuche
分隔符由;
完成。我试图在第4列之后更改分隔符。因此,identite
之后的每个分号都将更改为,
。
我试过了
awk '$4=$4' FS=";" OFS="," filename
但它正在将所有内容更改为逗号。
如果你有任何提示,我会全力以赴。
答案 0 :(得分:7)
您可以specify the occurrence使用sed
:
sed 's/;/,/4g' file
结果:
32322621661395926569;adverline;www.societe.com_societe;identite,Salarie2,fiche,btp_et_construction,CA4
32322621661395926569;adverline;www.societe.com_societe;identite,Salarie2,fiche,energy,CA4,nunuc_muchemuche
答案 1 :(得分:1)
这段perl代码应该可以工作。
#!/usr/bin/perl
open FH, $filename; # fill it in
while (<FH>){
my @elems = split ';', $_;
push @elems, join ',', splice @elems, 3, @elems - 3;
print join ';', @elems;
}