Modifier un fichier texte commande unix

Résolu/Fermé
alain - 11 févr. 2007 à 00:15
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 18 sept. 2008 à 15:47
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 !
A voir également:

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 3 567
11 févr. 2007 à 09:03
Re,

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.fr
Na!:-))

5
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
11 févr. 2007 à 09:10
D'abord on dit : Nananère !

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" :
awk -F\" '{ print $4 }'
;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
11 févr. 2007 à 09:15
D'abord on dit : Nananère ! Ok j'ai noté :-)
Toutefois Na!

Pour le cas avec les guillemets
lami20j@debian:~$ cat alain | grep -oE '"\w+\@.*\.fr"'
"adresse@domaine.fr"
"adresse1@domaine.fr"
"adresse2@domaine.fr"
Bonne journée JP :-)
0
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
11 févr. 2007 à 03:12
Bonjour,

essaie ceci :

cut -d "," -f2 fichier

2
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 févr. 2007 à 08:45
Salut,

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
2
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
11 févr. 2007 à 08:53
Salut,

Tu peux aussi utiliser "awk" à la place de "cut" :
awk -F, '{ print $2 }' fichier
et "sed" à la place de "perl" :
sed 's/.*,\"\(.*\)\",.*/\1/' fichier
;-))
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
2
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
11 févr. 2007 à 09:33
Et aussi sans guillements avec cut
lami20j@debian:~$ cat alain | cut -d'"' -f4
adresse@domaine.fr
adresse1@domaine.fr
adresse2@domaine.fr
et 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 :-))
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
11 févr. 2007 à 09:43
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...
grep -oE '"\w+\@.*\.[a-z]{2,3}"'
;-))
0
je voudrais savoir les syntaxes et les descriptions des commandes suivantes :
usermod
mkdir
lp
userdel
service
chkconfig
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
19 févr. 2008 à 15:01
man usermod
man mkdir
man lp
man userdel
man service
man chkconfig
0
Merci wiki :D
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
1
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

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 )
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
14 sept. 2008 à 10:20
Salut Jean-Paul,

Essaye ça :
wget -q -O - URL_de_la_page | grep -oe '\w\+@\w*.\w\+'
;-))
0
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 !

@+
1
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 sept. 2008 à 15:47
hello
et en utilisant w3m au lieu de wget
w3m - a text based Web browser and pager
w3m [options] [URL or filename]
1