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 [17/07/2014 16:53] Hypathie [Synthèse sed] |
utilisateurs:hypathie:tutos:accueil [19/07/2014 08:02] Hypathie [Synthèse sed] |
||
---|---|---|---|
Ligne 164: | Ligne 164: | ||
|''-i'' | ignorer la case | | |''-i'' | ignorer la case | | ||
|''-E'' |utiliser les regexp étendues\\ (correspond à egrep) | | |''-E'' |utiliser les regexp étendues\\ (correspond à egrep) | | ||
+ | |''-o'' |afficher uniquement les parties (non vides) correspondantes des lignes sélectionnées, chaque partie étant affichée sur une ligne séparée.| | ||
+ | |||
> Deux utilisations:\\ | > Deux utilisations:\\ | ||
>Soit ''grep [options] "expression" /chemin/fichier'' (on applique grep sur un fichier) | >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)\\ | + | >Soit ''cmd | grep [options]'' (on travaille à partir d'un flux d'entrée avec un filtre (pipe)\\ |
Ligne 179: | Ligne 181: | ||
===Filtre un flux d'entrée === | ===Filtre un flux d'entrée === | ||
+ | <code user> | ||
+ | /sbin/ifconfig | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | ||
+ | </code> | ||
+ | <code> | ||
+ | inet adr:192.168.0.22 Bcast:192.168.0.255 Masque:255.255.255.0 | ||
+ | inet adr:127.0.0.1 Masque:255.0.0.0 | ||
+ | </code> | ||
<code user> | <code user> | ||
/sbin/ifconfig | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | /sbin/ifconfig | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | ||
Ligne 188: | Ligne 197: | ||
192.168.0.255 | 192.168.0.255 | ||
255.255.255.0 | 255.255.255.0 | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Attention de ne pas oublier ''-o'' pour afficher l'occurrence exacte d'un mot au lieu de la ligne entière où figure l'occurrence du mot ! | ||
+ | </note> | ||
+ | <code user> | ||
+ | echo "bfer aaa jhgao aaaaaa haug aaaaaaaa" | grep -E "[[:blank:]][a]{3}[[:blank:]]" | ||
+ | </code> | ||
+ | <code> | ||
+ | bfer aaa jhgao aaaaaa haug aaaaaaaa | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | echo "bfer aaa jhgao aaaaaa haug aaaaaaaa" | grep -oE "[[:blank:]][a]{3}[[:blank:]]" | ||
+ | </code> | ||
+ | <code> | ||
+ | aaa | ||
</code> | </code> | ||
=====Synthèse sed ===== | =====Synthèse sed ===== | ||
Ligne 282: | Ligne 308: | ||
>On peut utiliser la syntaxe habituelle, ou la syntaxe étendue avec l'option ''-r''. | >On peut utiliser la syntaxe habituelle, ou la syntaxe étendue avec l'option ''-r''. | ||
<code text man sed> | <code text man sed> | ||
+ | -r, --regexp-extended | ||
+ | |||
+ | use extended regular expressions in the script. | ||
+ | //[...]// | ||
REGULAR EXPRESSIONS | REGULAR EXPRESSIONS | ||
POSIX.2 BREs should be supported, but they aren't completely because of | POSIX.2 BREs should be supported, but they aren't completely because of | ||
performance problems. The \n sequence in a regular expression matches | performance problems. The \n sequence in a regular expression matches | ||
the newline character, and similarly for \a, \t, and other sequences. | the newline character, and similarly for \a, \t, and other sequences. | ||
+ | </code> | ||
+ | <code text info sed> | ||
+ | `-r' | ||
+ | `--regexp-extended' | ||
+ | Use extended regular expressions rather than basic regular | ||
+ | expressions. Extended regexps are those that `egrep' accepts; | ||
+ | they can be clearer because they usually have less backslashes, | ||
+ | but are a GNU extension and hence scripts that use them are not | ||
+ | portable. *Note Extended regular expressions: Extended regexps. | ||
</code> | </code> | ||
<note> | <note> | ||
+ | Sed utilise une version particulière des expressions régulières. \\Sed couvre POSIX des expressions régulières de base, voir [[atelier:chantier:bash-vii-globs-etendus-regex#tableau-des-caracteres-utilises-dans-les-expressions-regulieres-etendues|Tableau des caractères utilisés dans les expressions régulières étendues]] différentes de grep et Perl.\\ Mais sed | ||
* sans ''-r'' : | * sans ''-r'' : | ||
- | métacaractères : ''[ ]'' ; ''.'' ; ''*''\\ | + | //ER// simples : ''^'' ; ''$'' ; ''.'' ; ''*'' ; ''\( \)'' ; ''['' ; ''\{ \}'' ; ''\'' |
- | //ER// simples : ''?'' ; ''^'' ; ''$'' ; ''+'' ; ''|'' ; ''( )'' | + | |
* avec ''-r'' : | * avec ''-r'' : | ||
- | //ER// étendues : | + | |
+ | //ER// étendues : ''|'' ; ''^'' ; ''$'' ; ''.'' ; ''*'' ; ''+'' ; ''?'' ; ''( )'' ; ''['' ; ''{ }'' ; ''\'' ; ''[bracket-expression]'' | ||
</note> | </note> | ||
=== Syntaxe d'adressage avec exemple la commande de suppression === | === Syntaxe d'adressage avec exemple la commande de suppression === |