[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comment utiliser des expressions régulières avancées avec sed?



Le dimanche 19 Décembre 2004 13:08, SuperDindon <lachienne@wanadoo.fr> :
> $ lspci -v | grep "\[.HCI\]" | grep "(^|\]).*\[" # ne m'affiche rien
> $ lspci -v | grep "\[.HCI\]" | egrep "(^|\]).*\["
> 0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 10 [OHCI])
> 0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 10 [OHCI])
> 0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 20 [EHCI])
> # j'en déduit que mon expression régulière est considérée comme avancée
> $ lspci -v | grep "\[.HCI\]" | sed s/"(^|\]).*\["/""/g
> 0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 10 [OHCI])
> 0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 10 [OHCI])
> 0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev
> a4) (prog-if 20 [EHCI])
>
>
> sed n'a donc pas capté que c'était une expression régulière avancée.J ai
> feuilleté la documentation de GNU et le man de sed, mais je nai pas trouvé
> grd chose. Ma question est donc :
> Comment faire comprendre à sed qu'il faut quil interprète l'expression
> comme avancée?
>
> De même, je débute avec sed donc je ne sais vraiment pas si c la meilleure
> façon darriver à mes fins. Ce que je cherche en fait c à savoir si l'hôte
> USB est de type OHCI, UHCI ou EHCI. Jutilisais auparavant cut ( avec comme
> délimiteurs [ et ] ), mais sil y avait plusieurs [], ça aurait foiré.
> Est-ce quelqu'un expérimenté en script bash pourrait me dire ce qu'il
> aurait utilisé?

Ah bah si jai trouvé :

sed -r s/"(^|\]).*\["/""/g

dsl pour le dérangement



Reply to: