Allt från Computex 2023
Permalänk
Inaktiv

Reguljära uttryck *host*

Sitter och försöker matcha ett ord i flera stringar. Det jag vill hitta och ta bort är alla förekomster av filnamn som slutar med .h. Det är header-filer jag vill skala bort. Exempel är opt_pool.h, pool.h, more_opt_pool.h etc. Jag har inte lyckats lösa det än och hoppades på att någon regexp guru kan hjälpa.

Jag vet inte riktigt hur man repeterar mönster men något i stil med ([a-z][a-z]*_)*[a-z][a-z]*\.h där ([a-z][a-z]*_) förekommer 0-x antal gånger. Det lättaste vore om man bara kollade på de två sista tecknen då jag vet att de skall vara .h, men jag är ju lite dissorienterad såhär på kvällen, så jag behöver lite hjälp...

Permalänk

Re: Reguljära uttryck *host*

^\w+\.h$

Permalänk
Inaktiv

Re: Re: Reguljära uttryck *host*

Citat:

Ursprungligen inskrivet av Sachankara
^\w+\.h$

Fungerar inte men tack ändå. Jag var nog för otydlig tidigare, jag använder sed och en typisk sträng ser ut såhär:

options opt_pipe.h PIPE_SOCKETPAIR PIPE_NODIRECT

Det jag vill göra är att ta bort opt_pipe.h. Jag kan inte matcha det med awk, för det är inte alltid filen är i andra kolumnen...

Permalänk
Medlem

sed 's/[_a-z]*\.h//g'

Borde funka.

Visa signatur

Stolt användare av en ibook 300 MHz (dasslocket)

Permalänk
Inaktiv
Citat:

Ursprungligen inskrivet av zypher_X

sed 's/[_a-z]*\.h//g'

Borde funka.

Jupp, har testat. Kanon!

Jag hade precis löst det men mindre elegant, jag är dock ganska ny på det här :

sed 's/\([a-z][a-z]*_\)*[a-z][a-z]*\.h//g'

Båda ger samma slutresultat (vad jag kan se) så jag kommer att köra på din variant.

Tack så mycket!

EDIT: Jag söker i filer med massvis av sådana strängar, och jag såg precis att en del header-filer innehåller siffror också, men det är ju en smal sak nu...