informatique:sed
Table des matières
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