Présentation

Cette page a pour but de recenser les différents usages de sed, cette merveilleuse commande qui m'a fait gagner beaucoup de temps, et qui m'en a demandé le double pour comprendre son bon fonctionnement.

SED (Stream EDitor) est un outil unix/linux de la norme posix. C'est un langage a lui tout seul, le gérer demande enormément de temps et de pratiques, et son lot de fails vient avec.

Le premier conseil que je peux donner avant de commencer a utiliser SED est de se familiariser avec les REGEX car on en utilise un sacré paquet.

Suppression

supprimer ligne 1:

sed -e "1d;" file

supprimer lignes 1 et 3:

sed -e "1d;3d" file

supprimer lignes 1 a 3:

sed -e "1,3 d" file

Supprime les lignes vides ou celles où il n'y a que 1 seul caractère dièse

sed -e '/^$/d;/^#$/d'

supprime les lignes qui commencent par un #

sed -i '/^#/d' file

supprime les lignes vide

sed -i '/^\s*$/d' file

Substitution

remplace “lastname” par “nom” etc… /g pour l'appliquer a chaque occurence dans notre fichier, sinon SED remplace que la 1ere.

sed -re 's/lastname/nom/g; s/Firstname/prenom/g;s/genre/sexe/g;s/age/datedenaissance/g' file_2015-04-05

remplace le chiffre 20 de la ligne qui commence par “age” par vingt

sed -re '/^age/s/20/vingt/g;' file

modifie la lettre “a” du mot age par “â”

sed -re '/^age/y/a/â/' file

Scripts

scriptsed.sh
sed -f scriptsed.sh passwd
Utilisation pour le fichier passwd
/^root/s/0:0/1337:1337/g;s/root/superuser/g
/^client/s/client,,,/client/g
/^client/s/1000:1000/1234:1234/g;s/client/toto/g
y/o/0/

Rename

ls | sed -re "s/^anciennom(.*)/mv '&' 'nouveaunom\1'/" | sh
for file in *.txt ; do mv $file `echo $file | sed 's/\(.*\)\.txt/\1/'` ; done

Between

sed -n '/WORD1/,/WORD2/p' /path/to/file

Print

Affiche la 100eme ligne:

sed -n 100p

Affiche les lignes 90 à 100

sed -n 90,100p

Affiche la dernière ligne

sed -n '$'p

Affiche les 10 dernières lignes

sed -n '1,$'p device | tail -10
wiki/sed.txt · Dernière modification: 2018/04/24 14:00 par root
CC0 1.0 Universal
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5