Sed, J'y comprend rien ! |
Bienvenue invité ( Connexion | Inscription )
Sed, J'y comprend rien ! |
13 May 2008, 16:33
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 150 Inscrit : 31 Oct 2003 Membre no 11 118 |
Bonjour,
Malgré la lecture de tutoriaux sur sed j'ai beaucoup de mal ! Imaginons que je veuille filtrer le contenu d'un fichier pour ne garder que les lignes contenant l'ip "192.168.1.16", je fais quoi ? j'ai tenté : CODE seb -n /192.168.1.16/d /mon/fichier mais ça ne me retourne rien. CODE seb /192.168.1.16/d /mon/fichier ça me retourne tout CODE seb -n /^192.168.1.16/d /mon/fichier ça ne me retourne rien. [tiny]Quel est le cerveau malade qui a pondu cette syntaxe de taré ? [/tiny] Ce message a été modifié par hellomorld - 13 May 2008, 16:34. -------------------- |
|
|
13 May 2008, 16:40
Message
#2
|
|
- Macbidouilleur d'Or ! Groupe : Membres Messages : 2 125 Inscrit : 23 Aug 2002 Lieu : Grandmetz (Belgique, Leuze) Membre no 3 222 |
CODE grep "192.168.1.16" /chemin/fichier Après suivant ce qu'il y a sur ta ligne contenant ton IP, il sera peut-être nécessaire de "piper" ton grep avec un sed pour faire du nettoyage. Donne nous un exemple concret. -------------------- * Rejoignez-nous sur le chan IRC de MacBidouille !
|
|
|
13 May 2008, 17:31
Message
#3
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 449 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
seb ? L'électroménager et les expression régulières, pas sûr que ça fasse bon ménage
Utilise "grep" pour ce que tu veux faire PS : cette syntaxe est très logique -------------------- I think therefore I Mac
|
|
|
14 May 2008, 08:13
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 964 Inscrit : 3 Nov 2005 Membre no 49 239 |
CITATION(hellomorld @ 13 May 2008, 17:33) [snapback]2662820[/snapback] j'ai tenté : CODE seb -n /192.168.1.16/d /mon/fichier Essaye CITATION moulinex -n /192.168.1.16/d /mon/fichier grep est parfait pour ça. Grep filtre le contenu des fichiers, sed permet de filtrer et faire des modifications sur les fichiers |
|
|
14 May 2008, 08:26
Message
#5
|
|
Macbidouilleur de Nancy Groupe : Modérateurs Messages : 8 787 Inscrit : 16 Nov 2001 Lieu : Clermont-Ferrand Membre no 1 308 |
CITATION(hellomorld @ 13 May 2008, 17:33) [snapback]2662820[/snapback] Bonjour, Malgré la lecture de tutoriaux sur sed j'ai beaucoup de mal ! Imaginons que je veuille filtrer le contenu d'un fichier pour ne garder que les lignes contenant l'ip "192.168.1.16", je fais quoi ? j'ai tenté : CODE seb -n /192.168.1.16/d /mon/fichier mais ça ne me retourne rien. ça ne retourne même pas un message d'erreur du genre "-bash: seb: command not found"? -------------------- pour suivre mes tests de produits sur Amazon : Mon profil Amazon
|
|
|
18 May 2008, 05:58
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 150 Inscrit : 31 Oct 2003 Membre no 11 118 |
CITATION(Gotchi @ 14 May 2008, 09:26) [snapback]2663411[/snapback] CITATION(hellomorld @ 13 May 2008, 17:33) [snapback]2662820[/snapback] j'ai tenté : CODE seb -n /192.168.1.16/d /mon/fichier mais ça ne me retourne rien. ça ne retourne même pas un message d'erreur du genre "-bash: seb: command not found"? Non, car dans le terminal j'ai tapé la bonne commande Bon finalement sed c'est une syntaxe bien trop alambiquée pour moi... je ne la retiendrai jamais ! Je préfère de beaucoup seb, car seb, c'est bien ! -------------------- |
|
|
14 Feb 2011, 16:24
Message
#7
|
|
Nouveau Membre Groupe : Membres Messages : 1 Inscrit : 14 Feb 2011 Lieu : Marseille Membre no 164 625 |
Salut,
La commande "sed" (stream editor) est un éditeur de texte non interactif. Elle permet d'automatiser le traitement de fichiers texte. La syntaxe de base: Code sed [-n] action [fichier_1 ...] // mais il y en a plusieurs syntaxes ! une action possède la syntaxe suivante: Code [adresse[,adresse]]commande[arguments] donc, une action peut avoir 0, 1 ou 2 adresses. les adresses sont: s'il y a 1 adresse Code nl Ligne nl $ Dernière ligne /ER/ Lignes correspondant à l'expression régulière s'il y a 2 adresses Code nl1,nl2 Ligne nl1 jusqu'à Ligne nl2 /ER1/,/ER2/ La première ligne traité sera la première correspondant à ER1 et jusqu'à la dernière qui sera ER2 Le traitement se poursuivra sur toutes les lignes comprises entre ER1 et ER2 (y comprises) Les principales commandes sont: CODE Commande arguments adresse (max) Signification d aucun 2 Ne pas afficher les lignes spécifiées (d: delete) p aucun 2 Affiche les lignes spécifiées (p: print) s /ER/rempl/[g] 2 Substitution de ER par rempl sur les lignes spécifiées. Dans ton cas, si tu écris: Code sed -n /192.168.1.16/d mon_ficher.txt - l'option -n spécifie à sed de NE PAS REAFFICHER tout le fichier - la commande d spécifie a sed de ne pas afficher les lignes spécifiées donc c'est normal que sed ne retourne rien. Il faut utiliser la commande p Normalement si t écris: Code sed -n /192.168.1.16/p mon_ficher.txt tu devras voir affiché la ligne que tu recherches. sed est une commande très puissante et très utile en programmation lorsque tu as beaucoup de fichiers texte à traiter. Pour faire une simple recherche dans un fichier, c'est plus simple d'utiliser la commande "grep" car avec "sed" c'est comme si tu voulais remplir la gamelle de ton chien avec un tuyau de pompiers Par contre si tu as une centaine de fichiers texte (carnet d'adresses) et que tu veux récupérer (modifier) des lignes (uniquement des adresses mail par exemple ) et créer une liste de contacts ( créer un fichier mes_contacts.txt) tu peux faire appel à sed. Il y a des nombreux tutos, celui du www.siteduzero.com est très bien. Il y a plusieurs façons de faire la même chose mais sed est seulement une (bonne) option de plus. @ + Ce message a été modifié par Demon_Bleu - 14 Feb 2011, 17:17. -------------------- Rajoute de la vie aux années et non des années à la vie !
-------------------------------------------------------------- iBook G4 933 MHz, iMac ic2D 3,06 GHz |
|
|
16 Feb 2011, 00:47
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 745 Inscrit : 13 Nov 2006 Membre no 72 823 |
hé bin! s'inscrire juste pour poster une explication détaillée sur sed, je dis bravo! et bienvenue
-------------------- Macbook Pro 15" Core 2 Duo 2.33GHz, 3Go RAM, Mac OS X 10.6.8 | Macbook Air 13" mi-2011 Core i5, Mac OS X 10.8
NAS Synology DS-110+ iPhone 6 silver 64Go - forfait SFR Red 3Go |
|
|
16 Feb 2011, 06:03
Message
#9
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 150 Inscrit : 31 Oct 2003 Membre no 11 118 |
hé bin! s'inscrire juste pour poster une explication détaillée sur sed, je dis bravo! et bienvenue Et près de 3 ans après la demande ! Moi aussi je dis bravo et merci ! -------------------- |
|
|
Nous sommes le : 26th April 2024 - 15:07 |