Outils pour utilisateurs

Outils du site


informatique:sed

La commande "sed"

La page de man de sed.

Exemples

Noms de domaines

J'essaye d'isoler une partie d'un domaine pour ne récupérer que la partie “principale”. Je veux pouvoir enlever http, https, www et toute la fin ( .be, .com, …) :

$ cat domaines.txt 
http://montest.be/
https://www.montest.be
http://monautretest.com/blabla
test.fr

On peut y aller par étapes :

$ cat domaines.txt | sed -e "s/http\:\/\///" -e "s/https\:\/\///" -e "s/www\.//" -e "s/\..*//"
montest
montest
monautretest
test

Une astuce de Lord : On peut aussi utiliser un autre séparateur que “/” ce qui, peut-être, clarifie un peu la commande. Exemple avec “#” :

$ sed -e "s#http\:\/\/##" -e "s#https\:\/\/##" -e "s#www\.##" -e "s#\..*##" domaines.txt 
montest
montest
monautretest
test

On est même plus obliger d'échapper les “/” :

$ sed -e "s#http\://##" -e "s#https\://##" -e "s#www\.##" -e "s#\..*##" domaines.txt 
montest
montest
monautretest
test

Pour supprimer seulement http(s) :

$cat domaines.txt | sed -e "s/\(http\|https\)\:\/\///"
montest.be/
www.montest.be
monautretest.com/blabla
test.fr

Supprimer des lignes dans un fichier

Dans un script, j'avais besoin de supprimer une ou plusieurs lignes contenant “null” :

sed -i '/null/d' /tmp/$FILE
informatique/sed.txt · Dernière modification : 2020/08/09 13:03 de 127.0.0.1