Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
SuperDindon
$ 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=
=20
a4) (prog-if 10 [OHCI])
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev=
=20
a4) (prog-if 10 [OHCI])
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev=
=20
a4) (prog-if 20 [EHCI])
# j'en d=E9duit que mon expression r=E9guli=E8re est consid=E9r=E9e comme a=
vanc=E9e
$ lspci -v | grep "\[.HCI\]" | sed s/"(^|\]).*\["/""/g
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev=
=20
a4) (prog-if 10 [OHCI])
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev=
=20
a4) (prog-if 10 [OHCI])
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev=
=20
a4) (prog-if 20 [EHCI])


sed n'a donc pas capt=E9 que c'=E9tait une expression r=E9guli=E8re avanc=
=E9e.J ai=20
feuillet=E9 la documentation de GNU et le man de sed, mais je nai pas trouv=
=E9=20
grd chose. Ma question est donc :=20
Comment faire comprendre =E0 sed qu'il faut quil interpr=E8te l'expression =
comme=20
avanc=E9e?

De m=EAme, je d=E9bute avec sed donc je ne sais vraiment pas si c la meille=
ure=20
fa=E7on darriver =E0 mes fins. Ce que je cherche en fait c =E0 savoir si l'=
h=F4te USB=20
est de type OHCI, UHCI ou EHCI. Jutilisais auparavant cut ( avec comme=20
d=E9limiteurs [ et ] ), mais sil y avait plusieurs [], =E7a aurait foir=E9.
Est-ce quelqu'un exp=E9riment=E9 en script bash pourrait me dire ce qu'il a=
urait=20
utilis=E9?

3 réponses

Avatar
SuperDindon
Le dimanche 19 Décembre 2004 13:08, SuperDindon  :
$ 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 (r ev
a4) (prog-if 10 [OHCI])
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (r ev
a4) (prog-if 10 [OHCI])
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (r ev
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 (r ev
a4) (prog-if 10 [OHCI])
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (r ev
a4) (prog-if 10 [OHCI])
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (r ev
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 tro uvé
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 meil leure
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
Avatar
Jacques L'helgoualc'h
SuperDindon a écrit, dimanche 19 décembre 2004, à 13:21 :
[...]
Ah bah si jai trouvé :



info sed

est bien plus riche que man sed... mais moins que http://sed.sf.net/

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



Ton quotage est un peu bizarre ?

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

--
Jacques L'helgoualc'h


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
SuperDindon
Le dimanche 19 Décembre 2004 13:56, Jacques L'helgoualc'h
<lhh+ :
SuperDindon a écrit, dimanche 19 décembre 2004, à 13:21 :
[...]

> Ah bah si jai trouvé :

info sed

est bien plus riche que man sed... mais moins que http://sed.sf.net/

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

Ton quotage est un peu bizarre ?

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

--
Jacques L'helgoualc'h



Ok merci ça me sera très utile pour la suite