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

