J'ai pensé utiliser les regex mais je galere quelque peut ...
utiliser une expression du type :
pour rechercher une expression suvi du signe = afin de rechercher chaque identifiant et je me suis dis qu'il sufisais ensuite d'utiliser
pour selectionner la valeur qui suis. cela dis etant donné que certaines valeurs sont des phrases, l'expression reguliere \w ne fonctionnera pas il faudra plustot que j'utilise quelquechose du type
pour selectionner une suite de mots dont le dernier n'est pas suivi du signe =
donc en resumé il faut que j'utilise l'expression :
pour selectionner l'expression complete et que je tronque ensuite la partie située avant le signe =
quelqu'un peut confirmer mes dires ?
---------------------
EDIT
---------------------
je vais faire un petit resumé de la situation en cour ... au passage je tiens a remercier tout ceux qui prenent sur leur temp pour m'aider. C'est un acte qui est trop rare de nos jours pour ne pas etre signalé !
donc j'ai un fichier de log contenant une liste de lignes du type :
	
		
			
			
				Mar 23 04:19:23 192.168.XX.XX IP-Logs: FIREWALLLOG - id=firewall time="2006-03-23 04:20:01" fw=firewall.domaine.com pri=6 type=IP gmtime=1143084001 ip_log_type=ENDCONN src=192.168.XX.XX dst=192.168.XX.XX proto="822/tcp" protocol=6 port_src=65000 port_dst=132 intf_in= intf_out= nat=NO snat_addr=0 snat_port=0 dnat_addr=0 dnat_port=0 sent=237 rcvd=401 end_reason="Closed after reset"
			
		 
	 
 Je commence par selectionner seulement les lignes que je souhaite voir resortire. Par exemple celle dont l'adresse de destination ne correspond pas au plan d'adressage IP en vigueure :
	
		
			
			
				while ($line = <DATA>)
{
	print OUT "<tr>\n";
 if ($line !~ /dst\=192\.168\.\d\d?\d\.\d\d?\d/) 
			
		 
	 
 je me retrouve donc avec une ligne qui m'indique que l'ip de destination n'est pas bonne (voir plus haut).
je prend ma ligne et commence par tronquer les premieres information afin d'avoir une ligne plus homogene :
	
	$line = substr ($line, 50);
 j'ai donc maintenant une ligne qui se compose comme ceci :
identifiant=valeur
je souhaite tronquer les identifiant (soit tout se qui se trouve avant le signe =) et placer chaque valeur dans un tableau pour l'afficher ensuite dans une page web.
ici tout se corse : je pensais faire quelque chose du type :
	
	@tbl = split (/^\s*\=/, $line);
 en se faisant je pensais que ma ligne serai decoupé avec comme separateur n'importe quel nombre de charactere sauf un espace suivi d'un egual mais visiblement ça ne fonctionne pas ...
Il dois forcement y avoir un probleme quelque part ...
						
					
Partager