J'ai un fichier contenant un numéro de port et une adresse IP dans une chaîne. Je dois extraire les adresses IP, calculer le numéro de port selon la formule et le comparer au numéro de port dans le fichier et imprimer ceux qui ne correspondent pas. Si l'adresse IP est W.X.Y.Z, la formule pour le numéro de port est 50000 + 200 (Y) + Z. Le fichier texte a le format suivant.Comment extraire les adresses IP et les numéros de port en utilisant Perl et le comparer
exchangeA_5 = 53413; 239.189.17.13 7990
exchangeA_6 = 53415; 239.189.17.15 7990
exchangeA_e = 53470; 239.189.27.70 7990
exchangeA_5 = 53468; 239.189.27.68 7990
Quelle est la meilleure façon de le faire?
#!/usr/bin/perl
use strict;
use warnings;
open(my $fh, '<', 'fileC')
or die("Can't open fileC: $!\n");
while (<$fh>) {
chomp;
my ($key, $val) = split /=/;
#print "$key\n";
#print "$val\n";
my ($port, $ip) = split /[;]/, $val;
print "$port\n";
print "$ip\n";
}
perl -F \\ W -nae '$ F [1] -50000- $ F [5] * 200- $ F [6] && print'' – ysth