sed (2)

Publié le par Jean-Vincent

# remplace toto par tata dans toutes les lignes contenant titi
$ sed '/titi/s/toto/tata/g'

# remplace toto par tata dans toutes les lignes ne contenant pas titi
$ sed '/titi/!s/toto/tata/g'

# imprime les 10 premières lignes, comme le ferait head (utile pour comprendre la suite)
$ sed 10q

# imprimes toutes les lignes sauf celles entre "tata" et "toto"
$ sed '/tata/,/toto/d'

# imprime la ligne 52
$ sed -n '52p'                 # méthode 1
$ sed '52!d'                   # méthode 2
$ sed '52q;d'                  # méthode 3, arrête la lecture dès qu'elle a matché

# supprime les 10 premières lignes
$ sed '1,10d'

# imprime les 10 dernières lignes, comme le ferait tail (plus difficile)
$ sed -e :a -e '$q;N;11,$D;ba'
 
 
# imprime les 2 dernières lignes ("tail -2")
$ sed '$!N;$!D'

# imprime les lignes qui matchent (grep)
$ sed -n '/regexp/p'           # méthode 1
$ sed '/regexp/!d'             # méthode 2

# imprime les lignes qui ne matchent pas (grep -v)
$ sed -n '/regexp/!p'          # méthode 1
$ sed '/regexp/d'               # méthode 2

# imprime la ligne précédant le match
$ sed -n '/regexp/{g;1!p;};h'

# imprime la ligne succédant au match
$ sed -n '/regexp/{n;p;}'


# imprime une ligne sur 7 à partir de la 3e
$ gsed -n '3~7p'               # GNU sed only
$ sed -n '3,${p;n;n;n;n;n;n;}' # other seds

# supprime les 10 dernières lignes
$ sed -e :a -e '$d;N;2,10ba' -e 'P;D'   # méthode 1
$ sed -n -e :a -e '1,10!{P;N;D;};N;ba'  # méthode2
 
Publicité

Publié dans commandes Unix

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article