Posts Tagged ‘rechercher remplacer’



4
mar

Sed – rechercher remplacer

Substitution basique

Simple

- 1ère occurrence (de chaque ligne) rencontrée uniquement

sed 's/la/LA/' fichier.txt

Globale

- Toutes les occurrences (de chaque ligne) rencontrées

sed 's/la/LA/g' fichier.txt
Ciblée

- Seulement la 2ème occurrence (de chaque ligne) rencontrée

sed 's/la/LA/2' fichier.txt

Substitution conditionnée

Simplee

/Motif/ – Uniquement si la ligne contient « motif »

sed '/awk/ s/sed/SED/' fichier.txt

Numéro de ligne – Uniquement la ligne n° « N »

sed '18 s/sed/SED/' fichier.txt

/Regex/ – Uniquement s’il y a correspondance avec l’expression régulière

sed '/^[ ][Ss]ed/ s/ed/ED/g' fichier.txt
Avancée

0,/regex/ – Uniquement la 1ère occurrence rencontrée

sed '0,/sed/ s//SED/' fichier.txt
Bloc

/motif1/,/motif2/ – Uniquement dans l’intervalle « motif1 – motif2″

sed '/Début/,/Fin/ s/ed/ED/' fichier.txt    # 1ère occurrence uniquement
sed '/Début/,/Fin/ s/ed/ED/g' fichier.txt  # toutes les occurrences

8,13 – Uniquement dans l’intervalle des lignes 8 à 13

sed '8,13 s/ed/ED/g' fichier.txt

On peut aussi combiner motif et ligne

sed '8,/Fin/ s/ed/ED/g' fichier.txt
sed '/Début/,13 s/ed/ED/g' fichier.txt

Ou encore avec des « regex »

sed '/Début/,$ s/ed/ED/g' fichier.txt # jusqu'à la fin ($)
sed '/^[ ][Ss]ed/,13 s/ed/ED/' fichier.txt
Avancéé

Substituer tout un texte entre 2 motifs en excluant les motifs

sed  '/Début/,/Fin/{ /Début/b;/Fin/b; s/.*/SED - The Stream ÉDitor/; }' fichier.txt
9
mar

Remplacer des expressions dans un fichier avec cat|sed

Il suffit d’utiliser la commande cat comme suit dans un shell :

cat fichier | sed s/AVANT/APRES/g > fichier

Cela aura pour effet de remplacer l’expression AVANT par APRÈS.

Il est donc aussi très simple de supprimer certains termes en ne mettant rien dans APRÈS, ce qui donne :

cat fichier | sed s/AVANT//g > fichier

Il existe également cette méthode pour la même chose :

cat fichier | sed / »mot_a_virer »/d > fichier

Sed permet de se servir des expression régulières pour arriver a des résultats encore plus puissants.

Par exemple, en lançant :

cat fichier | sed /^$/d > fichier

on supprime dans le fichier toutes les lignes blanches

20
fév

VIM – Faire un rechercher remplacer


/chaine Recherche le texte « chaine » vers le bas
?chaine Recherche le texte « chaine » vers le haut
n Répète la dernière recherche
//[RET] Idem que n
N Inverse la recherche précédente
:g/expr1/s//expr2/g Recherche dans tous le fichier l’expression 1 et la remplace par l’expression 2
:g/expr1/s//expr2/gc Idem, mais demande une confirmation avant de remplacer
:x ,y s/expr1/expr2/g Recherche de la ligne x à la ligne y l’expression 1 et la remplace par l’expression 2
Celadon theme by the Themes Boutique