Pages : 1
#1 Le 28/06/2011, à 14:41
- percherie
Simplifier mes codes "sed"
Bonjour,
J'ai trouver comment manipuler mon fichier sources.list avec un script bash mais je cherche à simplifier la commande.
Voici ce que j'ai fait
#!/bin/bash
#syntaxe : read_list [[fichier]]
read_source() {
# suppression des sources
sed -i '/deb-src/d' $1 ;
# suppression de cdrom
sed -i '/deb cdrom/d' $1 ;
# activation de tous les dépôts
sed -i 's/#deb/deb/g' $1 ;
sed -i 's/# deb/deb/g' $1 ;
# suppression des lignes vide
sed -i '/^$/d' $1 ;
# suppression des commentaires (y compris dépôt avec commentaire)
sed -i '/#/d' $1 ;
}
read_source sources.list
Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/
Hors ligne
#2 Le 28/06/2011, à 18:06
- Wild_Child_87
Re : Simplifier mes codes "sed"
Bjr, essayes
sed -i "/deb-src/d;/deb cdrom/d;s/#deb/deb/g;s/# deb/deb/g;/^$/d;/#/d" $1
Normalement ça devrait le faire.
Hors ligne
#3 Le 29/06/2011, à 12:19
- percherie
Re : Simplifier mes codes "sed"
Cool, ça fonctionnement parfaitement et ça me permet de mieux comprendre la syntaxe de SED.
Merci pour tout.
Nomade en camion utilisant Ubuntu. Si vous souhaitez suivre mes voyages : http://toutenkamion.net/
Hors ligne
#4 Le 03/07/2011, à 17:48
- gerarmentor
Re : Simplifier mes codes "sed"
Ceci devrait donner le même résultat :
sed -ri 's/# ?deb/deb/;/deb(-src| cdrom)|^$|#/d' $1
Hors ligne
#5 Le 03/07/2011, à 18:51
- Bousky
Re : Simplifier mes codes "sed"
Tes expressions rationnelles devraient uniquement détecter les débuts de lignes, donc met « ^ » devant. Et comme il n'y a généralement qu'un début de ligne par ligne , « g » ne sert à rien dans ce cas.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
Pages : 1