Rechercher : dans
Par :

Modifier un fichier texte commande unix

Dernière réponse le 18 sep 2008 à 15:47:58 alain, le 11 fév 2007 à 00:15:48 
 Signaler ce message aux modérateurs

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 !

Configuration: Windows XP
Firefox 2.0.0.1

Meilleures réponses pour « Modifier un fichier texte commande unix » dans :
Commandes UNIX Voir Tableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
[MS-Dos] Ecrire dans un fichier texte en batch VoirPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

ekra, le 11 fév 2007 à 03:12:08
  • +2

Bonjour,

essaie ceci :

cut -d "," -f2 fichier

Vive Linux, les vacances et les gauffres !

Répondre à ekra

2

lami20j, le 11 fév 2007 à 08:45:41
  • +1

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
lami20j

Répondre à lami20j

3

jipicy, le 11 fév 2007 à 08:53:00
  • +1

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
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

lami20j, le 11 fév 2007 à 09:03:20
  • +2

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!:-))

lami20j

Répondre à lami20j

5

jipicy, le 11 fév 2007 à 09:10:55

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 }'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

6

lami20j, le 11 fév 2007 à 09:15:13

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 :-) lami20j

Répondre à lami20j

7

lami20j, le 11 fév 2007 à 09:33: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 :-))
lami20j

Répondre à lami20j

8

jipicy, le 11 fév 2007 à 09:43:42

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}"'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

9

patco, le 19 fév 2008 à 14:08:55

Je voudrais savoir les syntaxes et les descriptions des commandes suivantes :
usermod
mkdir
lp
userdel
service
chkconfig

Répondre à patco

10

jipicy, le 19 fév 2008 à 15:01:26

man usermod
man mkdir
man lp
man userdel
man service
man chkconfig

Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

11

Belmondo, le 13 sep 2008 à 17:59:53

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.

Répondre à Belmondo

12

Belmondo, le 13 sep 2008 à 18:52:46

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

Répondre à Belmondo

13

Belmondo, le 13 sep 2008 à 18:57:28

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 )

Répondre à Belmondo

14

jipicy, le 14 sep 2008 à 10:20:20

Salut Jean-Paul,

Essaye ça :

wget -q -O - URL_de_la_page | grep -oe '\w\+@\w*.\w\+'
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

15

Belmondo, le 18 sep 2008 à 14:17:01

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 !

@+

Répondre à Belmondo

16

 dubcek, le 18 sep 2008 à 15:47:58

Hello
et en utilisant w3m au lieu de wget
w3m - a text based Web browser and pager
w3m [options] [URL or filename]

Répondre à dubcek