Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 tongue , « 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