Outils pour utilisateurs

Outils du site


linux:sed (lu 52789 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
linux:sed [16-04-2014 10:08]
edmc73 [Extraire la valeur d'un test avec hdparm]
linux:sed [04-10-2020 12:00] (Version actuelle)
edmc73 [Remplacement / substitution]
Ligne 17: Ligne 17:
 tata 4321 toto tutu tata 4321 toto tutu
 </file> </file>
 +
 +L'option ''-i'' permet d'écrire directement les modifications dans le fichier. Sans l'option, le résultat s'affiche à l'écran
  
 Pour remplacer  **toto** par **koko** on utilise le **s** pour substitution Pour remplacer  **toto** par **koko** on utilise le **s** pour substitution
-  sed -'s/toto/koko/' fichier.txt+  sed -'s/toto/koko/' fichier.txt
    
 <file> <file>
Ligne 26: Ligne 28:
 </file> </file>
  
-On peut remarquer que seul la 1ère occurence est remplacé, pour remplacer toutes les occurences, on utilise l'option **g** à la fin de la commande +On peut remarquer que seule la 1ère occurrence est remplacée, pour remplacer toutes les occurrences, on utilise l'option **g** à la fin de la commande 
-  sed -'s/toto/koko/g' fichier.txt+  sed -'s/toto/koko/g' fichier.txt
 <file> <file>
 koko 1234 koko titi koko 1234 koko titi
Ligne 33: Ligne 35:
 </file> </file>
  
 +Pour ignorer la casse, on utilise l'option **I**
 +  sed -i 's/toto/koko/gI' fichier.txt
 +
 +Remplacer un \ par / dans les path des #include dans un fichier .c
 +  sed -i '/#include/s@\\@/@g' fichier.c
 +  sed -i '/#include/s@\\@/@g' *.c
 +  sed -i '/#include/s@\\@/@g' **/*.c
 +  
 +Pour remplacer dans l'ensemble d'un projet dans des fichiers .c et .h
 +
 +  find . -name '*.[ch]' -exec sed -i '/#include/s@\\@/@g' {} \;
 +et inversement
 +  find . -name '*.[ch]' -exec sed -i '/#include/s@/@\\@g' {} \;
 ==== Translittération ==== ==== Translittération ====
 Pratique pour par exemple remplacer tous les e avec accent par un e sans accent. Pratique pour par exemple remplacer tous les e avec accent par un e sans accent.
Ligne 132: Ligne 147:
 ''.*'' n'importe quoi jusqu'au ''='' suivi ou non de plusieurs espace\\ ''.*'' 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. 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 ===== ===== Regexp extended =====
  
linux/sed.1397635692.txt.gz · Dernière modification: 16-04-2014 10:08 de edmc73