Supprimer des lignes du fichier perl
Résolu/Fermé
rimrita
Messages postés
18
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
-
Modifié par rimrita le 3/04/2014 à 18:43
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 avril 2014 à 13:31
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 avril 2014 à 13:31
A voir également:
- Supprimer des lignes du fichier perl
- Fichier rar - Guide
- Impossible de supprimer un fichier - Guide
- Fichier host - Guide
- Supprimer une page word - Guide
- Comment ouvrir un fichier epub ? - Guide
4 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
4 avril 2014 à 18:43
4 avril 2014 à 18:43
Bonjour,
La dernière ligne indique "status=sens" et non pas "status=sent" et ce qui suit indique visiblement une erreur. Tu es sûre que les lignes "sent" se présentent comme cela ?
Dal
La dernière ligne indique "status=sens" et non pas "status=sent" et ce qui suit indique visiblement une erreur. Tu es sûre que les lignes "sent" se présentent comme cela ?
Dal
rimrita
Messages postés
18
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
6 avril 2014 à 22:55
6 avril 2014 à 22:55
oui oui je suis sure, c'est juste une faute de frappe
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
7 avril 2014 à 09:59
7 avril 2014 à 09:59
Comme tu dis que c'est une faute de frappe, cela confirme mes doutes.
Je pense que, pour faire ton exemple, tu as pris une ligne "status=deferred" que tu as changée en "status=sens" (avec une faute), et du coup, même si on met "status=sent" à la place, ce qui suit n'est pas représentatif de ce qu'est un message correctement envoyé, car ce qui suit indique une erreur "Recipient address rejected: Domain not found".
Donc, je pense que ta source de données d'exemple n'est pas correcte et n'est pas représentative de ce qu'est vraiment un e-mail "sent".
Peux-tu stp, confirmer cela et donner une ligne "sent" réelle et représentative.
Dal
Je pense que, pour faire ton exemple, tu as pris une ligne "status=deferred" que tu as changée en "status=sens" (avec une faute), et du coup, même si on met "status=sent" à la place, ce qui suit n'est pas représentatif de ce qu'est un message correctement envoyé, car ce qui suit indique une erreur "Recipient address rejected: Domain not found".
Donc, je pense que ta source de données d'exemple n'est pas correcte et n'est pas représentative de ce qu'est vraiment un e-mail "sent".
Peux-tu stp, confirmer cela et donner une ligne "sent" réelle et représentative.
Dal
rimrita
Messages postés
18
Date d'inscription
lundi 31 mars 2014
Statut
Membre
Dernière intervention
15 avril 2014
7 avril 2014 à 11:15
7 avril 2014 à 11:15
voila une ligne qui contient sent correctement
Mar 2 05:14:11 smtp p/smtp[***]: ****: to=<***@****>, relay=***.***.**.**[***.***.**.***]:25, delay=0.15, delays=./0.0/0./0.0, dsn=0.0.0, status=sent (**** *.0.0 Ok: queued as *******)
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
7 avril 2014 à 13:31
7 avril 2014 à 13:31
Donc, le plus simple est de faire un grep avec une négation de la regexp matchant une ligne correcte status=sent
Quelque chose comme cela :
Dal
Quelque chose comme cela :
#!/usr/bin/perl use strict; use warnings; open LIRE,"fichier_test.txt" or die "E/S : $!\n"; my @tmp = <LIRE>; my @log = grep {!/.*status=sent.*Ok: queued as /} @tmp; print @log;
Dal