Extraction de nombre d'une ligne
Résolu
thomas57070
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
-
-
Bien le bonjour,
Voilà je suis un petit script perl, à un moment dans mon script je sort les ouvertures et fermetures de session du fichier "/var/log/auth.log" je fais un split de chaque ligne quand elle contient "session opened" ou "session closed" il en ressort :
CRON[14..]:
su[6..]:
...
Ce que je voudrais c'est en retirer juste le numéro du processus entre crochet, voilà mon problème cela ne doit pas être bien sorcier mais je bloque =/ si quelqu'un à une idée !
Tout vient à point à qui sait attendre !
Voilà je suis un petit script perl, à un moment dans mon script je sort les ouvertures et fermetures de session du fichier "/var/log/auth.log" je fais un split de chaque ligne quand elle contient "session opened" ou "session closed" il en ressort :
CRON[14..]:
su[6..]:
...
Ce que je voudrais c'est en retirer juste le numéro du processus entre crochet, voilà mon problème cela ne doit pas être bien sorcier mais je bloque =/ si quelqu'un à une idée !
Tout vient à point à qui sait attendre !
A voir également:
- Extraction de nombre d'une ligne
- Partage de photos en ligne - Guide
- Nombre de jours entre deux dates excel - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Aller à la ligne excel - Guide
3 réponses
Salut thomas57070,
Si tu veux retirer juste le numéro et que tu as une chaîne "CRON[14613]:", tu vas te retrouver avec "CRON[]:". Si c'est bien ce que tu veux, tu fais comme cela :
Si ce que tu veux, en fait, c'est ne garder que "CRON", tu fais comme cela :
Dal
Si tu veux retirer juste le numéro et que tu as une chaîne "CRON[14613]:", tu vas te retrouver avec "CRON[]:". Si c'est bien ce que tu veux, tu fais comme cela :
$st =~ s/([a-zA-Z]+\[)[0-9]+(\]:)/$1$2/;
Si ce que tu veux, en fait, c'est ne garder que "CRON", tu fais comme cela :
$st =~ s/([a-zA-Z]+)(\[[0-9]+\]:)/$1/;
Dal
Merci de ta réponse qui soit dit en passant marche très bien mais en fait je crois que je me suis mal exprimé, je souhaite voir afficher que les chiffres entre les crochets : CRON[6413]: => 6413
C'est bon j'ai légèrement modifié la commande
par contre j'ai quelques lignes récalcitrantes du genre :
2564
2705
gdm-session-1458
6541
Merci d'avoir répondu si vite [Dal], les expressions régulières j'ai encore un peu de mal.
$st =~ s/([a-zA-Z]+\[)[0-9]+(\]:)/$1$2/;en
$st =~ s/([a-zA-Z]+\[)([0-9]+)(\]:)/$1$2/;
par contre j'ai quelques lignes récalcitrantes du genre :
2564
2705
gdm-session-1458
6541
Merci d'avoir répondu si vite [Dal], les expressions régulières j'ai encore un peu de mal.