sed – Rechercher / Remplacer

Simple sur un fichier

sed -i -e "s/foo/bar/" path/to/file.txt

Récursif avec grep

grep -rl "foo" path/to/directory |
while read filename
do
(
    sed -i -e "s/foo/bar/g;" $filename
)
done

Récursif sur une extension de fichier

find path/to/directory/ *.txt -type f -exec sed -i 's/foo/bar/g' {} \;

Rechercher / remplacer

sed -i -r -e 's/<username>[^<]+<\/username>/<username>neolao<\/username>/' file.txt

Rechercher / remplacer multilignes

sed -i -r -e '/<plop>/,/<\/plop>/ s/true/false/g' file.txt
sed -i -e 's/\s*<\/li>/<\/li>/g' file.txt
sed -i -n -E '1h;1!H;${;g;s/\n<\/li>/<\/li>/g;p;}' file.txt
sed -i -n -E '1h;1!H;${;g;s/<li>\s*([^<]+)<\/li>/<li>\1<\/li>/g;p;}' file.txt