multiple substitutions de symboles
Bonjour,
On m'a donné un fichier texte sous le format ci-après pour en faire un fichier csv avec séparateur ";" en remplaçant les symboles
\s
<->
->
:
udp 10.63.29.130:59773->10.63.10.4:8040 0/1 48
udp 10.63.29.130:42114->10.63.10.4:8040 0/1 24
tcp 10.63.29.30:2591<->10.69.25.204:49192 97434/94677 120
tcp 10.63.29.130:5666<->10.222.65.130:35023 9/8 24
tcp 10.242.254.63:telnet<->10.252.16.215:59111 29/30 30
udp 10.63.29.130:57000->10.63.10.4:8040 0/1 36
tcp 10.63.29.30:10001<->10.239.8.17:60683 2153/2210 120
tcp 10.63.29.30:2591<->10.239.8.17:60677 2/1 6
..............................
J'ai fait ca qui fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| my @input = @ARGV;
foreach my $fichier (@input) {
open my $fh, '<', "$fichier";
open my $didierCSV , '>' , "didier.csv";
while (my $ligne = <$fh>) {
$ligne =~ s/\s/;/g;
$ligne =~ s/\</;/g;
$ligne =~ s/\-+/;/g;
$ligne =~ s/\>+/;/g;
$ligne =~ s/\:+/;/g;
$ligne =~ s/\;+/;/g;
print "$ligne\n";
print $didierCSV "$ligne\n";
}
close $fichier;
close $didierCSV;
} |
Mais je n'arrive pas à indiquer de multiple possibilités (pas de OU, ET) avec les symbols <-> vu comme une seule pièce par exemple d'ou le fait de passer par x lignes de substitutions
$ligne =~ s/\s/;/g;
$ligne =~ s/\</;/g;
$ligne =~ s/\-+/;/g;
$ligne =~ s/\>+/;/g;
$ligne =~ s/\:+/;/g;
$ligne =~ s/\;+/;/g;
La dernière étant pour éviter d'avoir ;;; à la place de <->
Merci :)