J'ai une variable que je doit décomposer en plusieurs parties.
Normalement, j'utilise la fonction split(). Mon problème, c'est que je
doit décomposer sur des espaces du genre "Date Heure ID Host" mais le
nombre d'espace entre le 3ième et le 4ième champs n'est pas forcement
constant. Il peut y avoir 1, 2, 3 voir 4 espace.
Lorsque je fais :
my @split_var = split / /,$logfile_line;
J'ai mes trois premiers champs dans les variables $split_var[0]
$split_var[1] et $split_var[2]. Par contre, lorsque j'ai 2 espace ou plus
entre le champ 3 et 4, mon 4ième champ peut se retrouver dans $split_var[4]
voir même dans $split_var[6] si il y a beaucoup d'espace.
Alors, comment je fais pour lui dire que peu importe le nombre d'espace
qu'il y a entre les chaînes, c'est là que je veux splitter.
Remarque : Le fichier est générer automatiquement par une application métier
et comporte une dizaine de champ (j'en ai mis juste 4 pour l'exemple).
L'information dans chaque champ ne contient pas d'espace. L'espace est
juste un caractère de délimitation mais il y a deux champ d'ID qui sorte en
longueur fixe. Donc, quand l'ID n'est pas asser long, il met des espaces
pour compléter.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre ALAIN
Bonjour,
J'ai une variable que je doit décomposer en plusieurs parties. Normalement, j'utilise la fonction split(). Mon problème, c'est que je doit décomposer sur des espaces du genre "Date Heure ID Host" mais le nombre d'espace entre le 3ième et le 4ième champs n'est pas forcement constant. Il peut y avoir 1, 2, 3 voir 4 espace.
Lorsque je fais : my @split_var = split / /,$logfile_line;
pour e^tre insensible au nombre d'espaces (qui peuvent ^etre de vrais espaces, des tabulations, ...), j'ai tendance a` utiliser /s+/
cordialement
-- E-mail : echo ` | rot13`
Bonjour,
J'ai une variable que je doit décomposer en plusieurs parties.
Normalement, j'utilise la fonction split(). Mon problème, c'est que je
doit décomposer sur des espaces du genre "Date Heure ID Host" mais le
nombre d'espace entre le 3ième et le 4ième champs n'est pas forcement
constant. Il peut y avoir 1, 2, 3 voir 4 espace.
Lorsque je fais :
my @split_var = split / /,$logfile_line;
pour e^tre insensible au nombre d'espaces (qui peuvent ^etre de vrais
espaces, des tabulations, ...), j'ai tendance a` utiliser
/s+/
J'ai une variable que je doit décomposer en plusieurs parties. Normalement, j'utilise la fonction split(). Mon problème, c'est que je doit décomposer sur des espaces du genre "Date Heure ID Host" mais le nombre d'espace entre le 3ième et le 4ième champs n'est pas forcement constant. Il peut y avoir 1, 2, 3 voir 4 espace.
Lorsque je fais : my @split_var = split / /,$logfile_line;
pour e^tre insensible au nombre d'espaces (qui peuvent ^etre de vrais espaces, des tabulations, ...), j'ai tendance a` utiliser /s+/
cordialement
-- E-mail : echo ` | rot13`
Nicolas George
Pierre ALAIN wrote in message <d1c6pf$l04$:
pour e^tre insensible au nombre d'espaces (qui peuvent ^etre de vrais espaces, des tabulations, ...), j'ai tendance a` utiliser /s+/
Pas la peine :
« As a special case, specifying a PATTERN of space (' ') will split on white space just as "split" with no arguments does. »
Pierre ALAIN wrote in message <d1c6pf$l04$1@amma.irisa.fr>:
pour e^tre insensible au nombre d'espaces (qui peuvent ^etre de vrais
espaces, des tabulations, ...), j'ai tendance a` utiliser
/s+/
Pas la peine :
« As a special case, specifying a PATTERN of space (' ') will split on white
space just as "split" with no arguments does. »