Modifier un fichier texte commande unix [Résolu/Fermé]
Signaler
alain
-
dubcek
dubcek
- Messages postés
- 18240
- Date d'inscription
- lundi 15 janvier 2007
- Statut
- Contributeur
- Dernière intervention
- 30 novembre 2020
Bonjour tout le monde,
J'aurai besoin d'un petit coup de main pour modifier un fichier texte.
au départ j'ai un fichier qui contient des enregistrements comme celui ci:
"10/02/2007 20:34:09","adresse@domaine.fr","Erreur de connexion au serveur de messagerie"
et je voudrai récupérer juste :
"adresse@domaine.fr"
je sais que c'est possible avec un filtre, mais impossible de me souvenir lequel.
Merci à tous !
J'aurai besoin d'un petit coup de main pour modifier un fichier texte.
au départ j'ai un fichier qui contient des enregistrements comme celui ci:
"10/02/2007 20:34:09","adresse@domaine.fr","Erreur de connexion au serveur de messagerie"
et je voudrai récupérer juste :
"adresse@domaine.fr"
je sais que c'est possible avec un filtre, mais impossible de me souvenir lequel.
Merci à tous !
A voir également:
- Modifier un fichier texte commande unix
- Modifier un fichier texte commande unix ✓ - Forum - Shell
- PHP: Recupérer/modifier données fichier texte ✓ - Forum - PHP
- Modifier un fichier texte avec awk en bash... (Mac) ✓ - Forum - Shell
- Fichier conenant commande unix ✓ - Forum - Shell
- Modifier un fichier texte python ✓ - Forum - Python
11 réponses
lami20j
- Messages postés
- 21331
- Date d'inscription
- jeudi 4 novembre 2004
- Statut
- Modérateur, Contributeur sécurité
- Dernière intervention
- 30 octobre 2019
Re,
ou grep à la place de cut, perl, sed, awk
ou grep à la place de cut, perl, sed, awk
lami20j@debian:~$ cat alain | grep -oE '\w+\@\w+\.fr' adresse@domaine.fr adresse1@domaine.fr adresse2@domaine.frNa!:-))
ekra
- Messages postés
- 1867
- Date d'inscription
- vendredi 15 avril 2005
- Statut
- Membre
- Dernière intervention
- 24 juillet 2014
Bonjour,
essaie ceci :
cut -d "," -f2 fichier
essaie ceci :
cut -d "," -f2 fichier
lami20j
- Messages postés
- 21331
- Date d'inscription
- jeudi 4 novembre 2004
- Statut
- Modérateur, Contributeur sécurité
- Dernière intervention
- 30 octobre 2019
Salut,
si tu veux sans les guillemets
si tu veux sans les guillemets
lami20j@debian:~$ cat alain
"10/02/2007 20:34:09","adresse@domaine.fr","Erreur de connexion au serveur de messagerie"
"10/02/2007 20:34:09","adresse1@domaine.fr","Erreur de connexion au serveur de messagerie"
"10/02/2007 20:34:09","adresse2@domaine.fr","Erreur de connexion au serveur de messagerie"
lami20j@debian:~$ cat alain | cut -d"," -f2
"adresse@domaine.fr"
"adresse1@domaine.fr"
"adresse2@domaine.fr"
lami20j@debian:~$ cat alain | perl -ne 'print ((split /[,"]/)[4],"\n")'
adresse@domaine.fr
adresse1@domaine.fr
adresse2@domaine.fr
jipicy
- Messages postés
- 40805
- Date d'inscription
- jeudi 28 août 2003
- Statut
- Modérateur
- Dernière intervention
- 10 août 2020
Salut,
Tu peux aussi utiliser "awk" à la place de "cut" :
Tu peux aussi utiliser "awk" à la place de "cut" :
awk -F, '{ print $2 }' fichieret "sed" à la place de "perl" :
sed 's/.*,\"\(.*\)\",.*/\1/' fichier;-))
Belmondo
Bonsoir,
Est-il possible, plutôt que d'afficher seulement l'adresse dans la console, de la copier dans un fichier texte déjà existant, à la suite d'une liste d'adresse (une adresse par ligne).
Merci à tous.
Est-il possible, plutôt que d'afficher seulement l'adresse dans la console, de la copier dans un fichier texte déjà existant, à la suite d'une liste d'adresse (une adresse par ligne).
Merci à tous.
lami20j
- Messages postés
- 21331
- Date d'inscription
- jeudi 4 novembre 2004
- Statut
- Modérateur, Contributeur sécurité
- Dernière intervention
- 30 octobre 2019
Et aussi sans guillements avec cut
lami20j@debian:~$ cat alain | cut -d'"' -f4 adresse@domaine.fr adresse1@domaine.fr adresse2@domaine.fret avec guillemets en perl
lami20j@debian:~$ cat alain | perl -ne 'print ((split /,/)[1],"\n")' "adresse@domaine.fr" "adresse1@domaine.fr" "adresse2@domaine.fr"Alain je pense que tu as la sauce complete :-))
jipicy
- Messages postés
- 40805
- Date d'inscription
- jeudi 28 août 2003
- Statut
- Modérateur
- Dernière intervention
- 10 août 2020
C'est plus une sauce, c'est de la béchamel ;-))
Pour compléter, avec "grep", mieux vaut prévoir que toutes les adresses ne se termineront pas nécessairement par "fr" et donc anticiper...
Pour compléter, avec "grep", mieux vaut prévoir que toutes les adresses ne se termineront pas nécessairement par "fr" et donc anticiper...
grep -oE '"\w+\@.*\.[a-z]{2,3}"';-))
patco
je voudrais savoir les syntaxes et les descriptions des commandes suivantes :
usermod
mkdir
lp
userdel
service
chkconfig
usermod
mkdir
lp
userdel
service
chkconfig
Belmondo
Merci wiki :D
J'ai trouvé, c'est tout simple : il faut ajouter >> nom_du_fichier_texte
Ce qui donne
Merci
J'ai trouvé, c'est tout simple : il faut ajouter >> nom_du_fichier_texte
Ce qui donne
grep -oE '\w+\@\w+\.fr' >> nom_du_fichier_texte.txt
Merci
Belmondo
C'est encore moi, tout d'abord, c'est pour dire que j'ai oublié le nom du fichier dans lequel se trouve l'adresse mail à rechercher ce qui donne plutôt
Deuxièmement, est-il possible de faire cette manipulation directement depuis une page web, bien évidement la commande
grep -oE '\w+\@\w+\.fr' http://domaine.com/page ne marche pas, mais y a-t-il un autre moyen ?
Merci à tous (même si je suis un peu seul pour l'instant :D )
grep -oE '\w+\@\w+\.fr' nom_du_fichier_ou_se_trouve_les_emails >> nom_du_fichier_de_sauvegarde.txt
Deuxièmement, est-il possible de faire cette manipulation directement depuis une page web, bien évidement la commande
grep -oE '\w+\@\w+\.fr' http://domaine.com/page ne marche pas, mais y a-t-il un autre moyen ?
Merci à tous (même si je suis un peu seul pour l'instant :D )
Belmondo
Merci beaucoup, ça marche !!
En fait j'avais trouvé entre temps, sauve que j'étais parti pour faire un fichier .sh avec l'utilisation d'un fichier texte intercalé entre les deux commande grep et wget
Le seul problème de cette méthode, c'est que la page reste sous forme de html et si dans le code de la page il y a par exemple adresse@domaine.fr<br> comme il n'y a pas d'espace entre .fr et <br> ça ne marche pas !
@+
En fait j'avais trouvé entre temps, sauve que j'étais parti pour faire un fichier .sh avec l'utilisation d'un fichier texte intercalé entre les deux commande grep et wget
Le seul problème de cette méthode, c'est que la page reste sous forme de html et si dans le code de la page il y a par exemple adresse@domaine.fr<br> comme il n'y a pas d'espace entre .fr et <br> ça ne marche pas !
@+
Puis t'as oublié l'exemple avec grep qui inclut les guillemets ;-DD
Au passage, j'avais oublié l'expression qui exclut les guillemets avec "awk" : ;-))
Toutefois Na!
Pour le cas avec les guillemets
Bonne journée JP :-)