Toon posts:

Grep submatch

Pagina: 1
Acties:
  • 351 views

Onderwerpen


Acties:
  • 0Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 14:50
Ik wist niet helemaal waar ik dit topic moest plaatsen. Het gaat namelijk om reguliere expressies icm grep. En grep wordt vaak gebruikt onder Linux (draai zelf OSX) dus dacht ik gooi het hier maar neer. Maar misschien weet een modje een betere plek.

Ik wil een quote of the day uit een XML file lezen. Nu kom ik op het volgende uit:

code:
1
curl http://feeds.feedburner.com/quotationspage/qotd | grep -o "<description>(.*)"


Wat me een lijstje van quote's geeft, maar het <description> zelf staat er ook bij, nu is het vaak in programmeertalen zo dat je met de ( ) een submatch aan kan geven en dat je dat dan terug wilt, maar hoe gaat dit in grep in zijn werk?

Thanks :)

"grep --help | grep submatch" gaf geen nuttig resultaat terug ;)

[Voor 5% gewijzigd door ZpAz op 19-06-2011 18:49]

Why did the programmer quit his job? - He didn't get arrays.


Acties:
  • 0Henk 'm!

Anoniem: 26306

De makkelijkste manier om dit te doen is om het resultaat weer door te sturen naar het volgende commando. Met awk, cut, sed of nog weer een grep kun je verder. Maak niet de fout om te denken dat het allemaal met grep moet kunnen.

Acties:
  • 0Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 14:50
Thanks, hiermee komt het beter uit:

code:
1
curl http://feeds.feedburner.com/quotationspage/qotd | egrep -o "<description>(.*)\"" | sed  's/<\/description>/ /' | sed 's/<description>/ /'


Ik wilde het eerst zo doen:

code:
1
curl http://feeds.feedburner.com/quotationspage/qotd | grep -o "<description>\"(.*)" | sed  's/<\/?description>/ /'


om zo direct <description> & </description> te krijgen, maar dat werkte helaas niet.

Why did the programmer quit his job? - He didn't get arrays.


Acties:
  • 0Henk 'm!

  • MartinMeijerink
  • Registratie: Juli 2008
  • Laatst online: 27-05 19:12

MartinMeijerink

Niet van deze wereld

Ik heb blijkbaar een andere curl dan jou, maar met wget doe ik het als volgt:
code:
1
wget 2>/dev/null -O - http://feeds.feedburner.com/quotationspage/qotd|grep '<description>'|cut -d\" -f2

Dan ben je ook meteen van die eerste twee regels af...

I love the smell of a soldeerbout in the morning


Acties:
  • 0Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 14:50
Heb bereikt wat ik wilde bereiken een Quote of the Day op mijn desktop. Thanks :)

Why did the programmer quit his job? - He didn't get arrays.


  • Victorius737
  • Registratie: Augustus 2005
  • Laatst online: 04-04-2022
Ziet er goed uit , Conky op OSX?

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 22-05 13:20
Anoniem: 26306 schreef op zondag 19 juni 2011 @ 18:53:
De makkelijkste manier om dit te doen is om het resultaat weer door te sturen naar het volgende commando. Met awk, cut, sed of nog weer een grep kun je verder. Maak niet de fout om te denken dat het allemaal met grep moet kunnen.
Sorry, maar je komt met dit advies in aanmerking voor de "useless use of grep award".
http://www.smallo.ruhr.de/award.html#grep
sed en awk hebben zelf ook een krachtige regexp-matcher aan boord, waardoor het gebruik van grep als voorfilter niet nodig is.
Hier is een oplossing zonder grep.
curl -sL http://feeds.feedburner.com/quotationspage/qotd|sed -n 's/^<description>//p'

  • Darkstar
  • Registratie: September 2007
  • Laatst online: 27-01 10:19
Ik denk eerder Geektool

 MacBook Pro | iPhone 6 64GB Space Gray | iPad (2017) | Apple Watch series 0 - Some people just need a high five... in the face... with a chair


Anoniem: 26306

sam.vimes schreef op dinsdag 21 juni 2011 @ 11:30:

Sorry, maar je komt met dit advies in aanmerking voor de "useless use of grep award".
Ik geef 4 alternatieven die allemaal werken. Lul niet :z

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 27-05 13:25

CAPSLOCK2000

zie teletekst pagina 888

het niveau daalt - topic gesloten

This post is warranted for the full amount you paid me for it.

Pagina: 1

Dit topic is gesloten.


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee