Outils pour utilisateurs

Outils du site


linux:sed (lu 55325 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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
linux:sed [01-11-2013 21:40]
edmc73
linux:sed [26-05-2014 11:59]
edmc73
Ligne 59: Ligne 59:
 Avec les **[ ]** et spécifie que la ligne commente par un **#** ou un **;**. Le **;** suivant veut dire que nous lançons une autre commande, celle ci dit que nous cherchons une ligne vide. **^** indique le début de la ligne et **$** la fin. **/d** on delete. Avec les **[ ]** et spécifie que la ligne commente par un **#** ou un **;**. Le **;** suivant veut dire que nous lançons une autre commande, celle ci dit que nous cherchons une ligne vide. **^** indique le début de la ligne et **$** la fin. **/d** on delete.
  
 +Supprimer les lignes qui contient un message d'erreur
 +  sed -e '/HTTP accept: Too many open files/d' pound.log.1 > pound.log.clean.1
  
 Éliminer les espaces et tabulations Éliminer les espaces et tabulations
Ligne 99: Ligne 101:
 Ici on a rajouté **1d** qui permet de supprimer la 1ère ligne. Ici on a rajouté **1d** qui permet de supprimer la 1ère ligne.
  
-==== Regexp extended ====+===== Exemple en vrac =====
  
-On peut mettre l'option -r à la place de l'option -e et voici la différence+Source 
 +<code>dublablacodecode<a href="/chemin/bien/precis/fichier.xyz">OnSenFoutDuNom</a>dublablacode 
 +dublablacodecode<a href="/chemin/bien/precis/fichier2.xyz">OnSenFoutDuNom</a>dublablacode</code>
  
-|Appendix A Extended regular expressions +Résultat 
-| +<code>fichier.xyz 
-|The only difference between basic and extended regular expressions is in the behavior of a few characters: ‘?’, ‘+’, parentheses, and |braces (‘{}’). While basic regular expressions require these to be escaped if you want them to behave as special characters, when using |extended regular expressions you must escape them if you want them to match a literal character. +fichier2.xyz</code> 
-| + 
-|Examples: +Sed 
-| +<code>sed -r 's/.*href=".*[$/](.*)".*/\1/' fichierSource</code> 
-|abc? + 
-|becomes ‘abc\?’ when using extended regular expressionsIt matches the literal string ‘abc?’.  +==== Extraire la date et la reformaté dans un nom de fichier ==== 
-|c\+ + 
-|becomes ‘c+’ when using extended regular expressions. It matches one or more ‘c’s.  +   
-|a\{3,\} +  $ echo Pict_20140215_0945.jpg sed -r 's/.*([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2}).*/\3-\2-\1 \4:\5/' 
-|becomes ‘a{3,}’ when using extended regular expressions. It matches three or more ‘a’s.  +  15-02-2014 09:45 
-|\(abc\)\{2,3\} + 
-|becomes ‘(abc){2,3}’ when using extended regular expressionsIt matches either ‘abcabc’ or ‘abcabcabc’.  +==== Extraire la valeur d'un test avec hdparm ==== 
-|\(abc*\)\1 +On veut récupérer la valeur 64.66 
-|becomes ‘(abc*)\1’ when using extended regular expressionsBackreferences must still be escaped when using extended regular |expressions.+<code># hdparm -t /dev/sda 
 + 
 +/dev/sda: 
 + Timing buffered disk reads: 198 MB in  3.06 seconds =  64.66 MB/sec</code> 
 + 
 +  hdparm -t /dev/sda sed -r '/Timing/!d;s/.*=\s*(.*) MB.*/\1/' 
 +   
 +Avec le ''/Timing/!d'' on garde que la ligne qui contient le mot Timing.\\ 
 +''.*'' n'importe quoi jusqu'au ''='' suivi ou non de plusieurs espace\\ 
 +On prend la valeur jusqu'à rencontrer un espace suivi de ''MB'' et n'importe quoi. 
 + 
 + 
 +==== Connaitre les machines connectées à notre serveur NFS ==== 
 + 
 +<code>netstat -alp egrep 'nfs(.*)ESTABLISHED' | sed -r 's/.* ([a-z0-9-]*\.[a-z0-9-]*\.[a-z0-9-]*).*/\1/'</code> 
 + 
 + 
 + 
 +===== Regexp extended ===== 
 + 
 +On peut mettre l'option -r à la place de l'option -e et voici la différence
  
 +>Appendix A Extended regular expressions
 +>
 +>The only difference between basic and extended regular expressions is in the behavior of a few characters: ‘?’, ‘+’, parentheses, and  braces (‘{}’). While basic regular expressions require these to be escaped if you want them to behave as special characters, when using extended regular expressions you must escape them if you want them to match a literal character.
 +>
 +>Examples:
 +>
 +>abc? -> ‘abc\?’ when using extended regular expressions. It matches the literal string ‘abc?’. 
 +>c\+ ->  ‘c+’ when using extended regular expressions. It matches one or more ‘c’s. 
 +>a\{3,\} -> ‘a{3,}’ when using extended regular expressions. It matches three or more ‘a’s. 
 +>\(abc\)\{2,3\} -> ‘(abc){2,3}’ when using extended regular expressions. It matches either ‘abcabc’ or ‘abcabcabc’. 
 +>\(abc*\)\1 -> ‘(abc*)\1’ when using extended regular expressions. Backreferences must still be escaped when using extended regular expressions.
  
  
linux/sed.txt · Dernière modification: 04-10-2020 12:00 de edmc73