Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:accueil [14/07/2014 23:33] Hypathie [grep] |
utilisateurs:hypathie:tutos:accueil [15/07/2014 10:12] Hypathie [Synthèse grep] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Utiliser conjointement cut ; wc ; grep ; sed ====== | ====== Utiliser conjointement cut ; wc ; grep ; sed ====== | ||
- | * Objet : Petit synthèse cut;grep;sed | + | * Objet : Petite synthèse cut;grep;sed |
* Niveau requis : FIXME {{tag>débutant avisé}} | * Niveau requis : FIXME {{tag>débutant avisé}} | ||
* Commentaires : //Contexte d'utilisation du sujet du tuto. // FIXME | * Commentaires : //Contexte d'utilisation du sujet du tuto. // FIXME | ||
Ligne 154: | Ligne 154: | ||
=====Synthèse grep ===== | =====Synthèse grep ===== | ||
+ | <code> | ||
+ | grep [options] regexp [fichier...] | ||
+ | </code> | ||
+ | |||
+ | Voir : [[atelier:chantier:bash-vii-globs-etendus-regex#tableau-des-caracteres-utilises-dans-les-expressions-regulieres-etendues|caractères utilisés dans les expressions régulières étendues]] | ||
+ | |||
+ | ^ ^ ^ | ||
+ | |''-c'' |afficher le décompte des lignes correspondantes | | ||
+ | |''-i'' | ignorer la case | | ||
+ | |''-E'' |utiliser les regexp étendues\\ (correspond à egrep) | | ||
+ | |||
+ | > Deux utilisations:\\ | ||
+ | >Soit ''grep [options] "expression" /chemin/fichier'' (on applique grep sur un fichier) | ||
+ | >Soit ''grep [options] cmd | regexp'' (on travaille à partir d'un flux d'entrée avec un filtre (pipe)\\ | ||
+ | |||
+ | |||
+ | ===Sur un fichier=== | ||
+ | <code user> | ||
+ | grep -E "(:[0-9]{4}:){1}" /etc/passwd | ||
+ | </code> | ||
+ | <code> | ||
+ | hypathie:x:1000:1000:Hypathie,,,:/home/hypathie:/bin/bash | ||
+ | </code> | ||
+ | |||
+ | ===Filtre un flux d'entrée === | ||
+ | <code user> | ||
+ | /sbin/ifconfig | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | ||
+ | </code> | ||
+ | <code> | ||
+ | 127.0.0.1 | ||
+ | 255.0.0.0 | ||
+ | 192.168.0.21 | ||
+ | 192.168.0.255 | ||
+ | 255.255.255.0 | ||
+ | </code> | ||
+ | =====Synthèse sed ===== | ||
+ | ===Syntaxe=== | ||
+ | <code> | ||
+ | sed [options] commande [fichier...] | ||
+ | </code> | ||
+ | ===Options=== | ||
+ | <code> | ||
+ | sed [options] -f script [fichier...] | ||
+ | </code> | ||
+ | ^options ^significations ^ | ||
+ | | ''-e'' | enchaîner plusieurs commandes | | ||
+ | | ''-r'' | utiliser les expressions régulières étendues | | ||
+ | |''-n'' |mode silencieux : permet de ne rien modifier\\ associée à l'option -p (print) : affichage sur la sortie standard | | ||
+ | |''-f'' |Les commandes sont lues à partir d'un fichier préalablement rédigé. | | ||
+ | |''-i'' |Le fichier est édité sur place.| | ||
+ | |||
+ | === Option -i et préparation=== | ||
+ | * Créer un fichier | ||
+ | <code user> | ||
+ | echo "aaaa BBB cCcC # 12345" >> ~/sed1.txt | ||
+ | </code> | ||
+ | * afficher le résultat de sed sans modifier du fichier | ||
+ | <code user> | ||
+ | sed 's+ +\n+g' ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | BBB | ||
+ | cCcC | ||
+ | # | ||
+ | 12345 | ||
+ | </code> | ||
+ | * sauvegarder un fichier : ''sed -i.bak'' | ||
+ | <code user> | ||
+ | sed -i.bak 's/sed1.txt//' ~/sed1.txt | ||
+ | </code> | ||
+ | <code user> | ||
+ | cat sed1.txt.bak | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa BBB cCcC # 12345 | ||
+ | </code> | ||
+ | * modifier un fichier avec ''sed -i'' | ||
+ | <code user> | ||
+ | sed -i 's+ +\n+g' ~/sed1.txt && cat ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | BBB | ||
+ | cCcC | ||
+ | # | ||
+ | 12345 | ||
+ | </code> | ||
+ | ====Adressage==== | ||
+ | <code user> | ||
+ | sed '' ~/sed1.txt.bak | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa BBB cCcC # 12345 | ||
+ | </code> | ||
+ | === Syntaxe d'adressage avec exemple de suppression === | ||
+ | * ''d'' commande de suppression | ||
+ | <code user> | ||
+ | sed '3,4 d' ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | BBB | ||
+ | 12345 | ||
+ | </code> | ||
+ | > pas d'option : rien n'est modifié | ||
+ | >''d'' : commande de suppression | ||
+ | >''3,4'' : ligne 3 et 4 | ||
+ | * option ''-e'' et répétition le commande ''d'': | ||
+ | <code user> | ||
+ | sed -e '3d; 4d' ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | BBB | ||
+ | 12345 | ||
+ | </code> | ||
+ | * adressage ''/ /'' : | ||
+ | <code user> | ||
+ | sed '/^B/d' ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | cCcC | ||
+ | # | ||
+ | 12345 | ||
+ | </code> | ||
+ | * adressage d'une plage ''/ /,/ /'': | ||
+ | <code user> | ||
+ | sed '/^B/,/^1/d' ~/sed1.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | aaaa | ||
+ | </code> | ||
+ | |||
+ | ===La substitution === | ||
+ | <code> | ||
+ | s/modèle/remplacement/[drapeau] fichier | ||
+ | </code> | ||
+ | <code> | ||
+ | cmd | s/modèle/remplacement/[drapeau] | ||
+ | </code> | ||
+ | ===les drapeaux === | ||
+ | ====Applications ==== | ||
+ | |||