Linux:SED

De Djjnet.

sed -e commandes [liste fichiers] : les commandes sont séparées par un point-virgule -e n'est pas obligatoire s'il n'y a qu'une commande.

Une commande est de la forme :

[l1[,l2]]commande [argument]

l1 et l2 sont des indications de lignes : Sans l1 et l2, sed applique le traitement à tout le fichier. Juste l1, sed applique le traitement à la ligne l1. l1 et l2, sed applique le traitement à l'intervale de l1 à l2.

[l1[,l2]]!commande [argument] : applique la commande aux lignes non comprises dans la plage.

Il est possible de spécifier une chaîne à rechercher au lieu d'une plage de ligne : /chaine/

sed '/^$/d' fichier.txt : recherche la chaîne ^$ (ligne vide) et la supprime.

La commande s permet de remplacer du texte :

echo "texte1 texte2, texte2"|sed -e s/texte2/texte1/ : texte2 remplacé 1 fois par texte1
echo "texte1 texte2, texte2"|sed -e s/texte2/texte1/g : texte2 remplacé jusque la fin par texte1
echo "texte1texte2 texte2, texte2"|sed -e 's/ texte2\([ ,\.,\,]\)/ texte1\1/' : texte2 avec un espace devant et avec un espace ou un point ou une virgule derrrière. cette ponctuation est mise entre \( \) est replacée après texte1 grâce à \1
sed -e s/texte2/texte1/g fichier.txt : application de sed au contenu du fichier
sed -e s/texte2/texte1/g fichier.txt > fichier2.txt : idem avec redirection du résultat dans fichier2.txt
Outils personnels
Google AdSense