クリーンアップする必要のあるcsvファイルがたくさんあります(句読点をスペースに置き換え、特定の単語を他の単語に置き換えます...)csvファイルには2つの列があり、それぞれにいくつかの文字を他の文字に置き換えます。たとえば、最初の列で;を置き換えます。xxxで、2番目の列で;を置き換えます。pppによる。これを行うには、正規表現に2つのperlコードがあり、1つのcsvファイルを2つのファイルにスライスします。ファイル1=最初の列とファイル2= 2番目の列で、最初の列のファイルの最初の列のコードを実行します。 ..それはまったく良い方法ではありません:s !!!
では、同じファイルの最初の列で最初の条件が実行され、2番目の列で2番目の条件が実行される1つのコードを作成するにはどうすればよいですか?
CSVの例: http : //dbpedia.org/resource/Berenguer_de_Cru%C3%AFllesBerenguerdeCruïlleshttp : //dbpedia.org/resource/Berenguer_de_Cru%C3%AFllesBerenguerdeCruïlles
IRIは最初の列で、名前は2番目の列にあります。
最初の列の正規表現のPerlコード:
use strict;
use warnings;
open(IN,$ARGV[0]);
open(OUT,">RES_xxx.txt");
while(my $l = <IN>)
{
chomp($l);
$l =~ s/http:\/\//_/g;
$l =~ s/,/vvv/g;
$l =~ s/"/=/g;
$l =~ s/'/#/g;
$l =~ s/\(/ééé/g;
$l =~ s/\)/èèè/g;
$l =~ s/%/zzz/g;
print OUT "$l\n";
}
close(IN);
close(OUT);
2番目の列の正規表現のPerlコード:
#! usr/bin/perl
use strict;
use warnings;
open(IN,$ARGV[0]);
open(OUT,">RES_xxx.txt");
while(my $l = <IN>)
{
chomp($l);
$l =~ s/\(.+\)/ /g;
$l =~ s/'/ /g;
$l =~ s/"/ /g;
$l =~ s/,/ /g;
$l =~ s/\./ /g;
$l =~ s/:/ /g;
$l =~ s/;/ /g;
$l =~ s/!/ /g;
$l =~ s/\?/ /g;
$l =~ s/-/ /g;
$l =~ s/_/ /g;
$l =~ s/{/ /g;
$l =~ s/}/ /g;
$l =~ s/\+/ /g;
$l =~ s/=/ /g;
print OUT "$l\n";
}
close(IN);
close(OUT);
ありがとうございました !