URL-eket vonok ki egy webhelyről a cURL használatával, az alábbiak szerint.

Az új.txt fájlom az alábbi.

<a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something"> <a href="http://websitenotneeded.com" title="something NOTNEEDED"> 

Azonban csak az alábbi információkat kell kibontanom.

<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something"> 

Igyekszem figyelmen kívül hagyni a <a href -t, amelyek információ bennük, és amelynek címe NEM TARTALMAZZA .

Hogyan módosíthatom a grep utasításomat?

Megjegyzések

  • Ön a kimenet ' igazad van itt? A leíró szövegnek ' nincs értelme ezzel a példával együtt.
  • Aren ' t keres curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt?
  • @terdon, pontosan ezt kerestem. Elfogadhatom válaszként, ha közzéteszed.
  • Ramesh, ez ' alapvetően @slm ' s válasz. Most szerkesztettem, hogy el tudja fogadni.
  • ja, igen, nem jöttem rá, hogy a pipa ilyen erős. Elfogadtam válaszként. Köszönöm!

Válasz

Nem követem teljes mértékben a példádat + a leírást, de úgy hangzik, mint amit ez a következő:

$ grep -v "<a href=.*title=.*NOTNEEDED" sample.txt <a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something"> 

Tehát a példádhoz:

$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt 

Megjegyzések

  • Van egy osztályom a < a href szakaszban. Alapvetően nem ezt akarom a kimenetemben.

Válasz

A grep kézikönyv a következőket mondja:

-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .) 

Több inverzióhoz használhat reguláris kifejezéseket:

grep -v "red\|green\|blue" 

vagy

grep -v red | grep -v green | grep -v blue 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük