Vraag & Antwoord

OS Linux

[grep] Ik zoek twee trucjes te gebruiken in een "pipe&q

13 antwoorden
  • Wie helpt mij op weg met de volgende twee vraagjes over grep gebruikt in (met?) een pipe? 1) Wat is een kortere notatie voor:[code:1:21261b20e5]commando | grep zoekterm1 | grep zoekterm2[/code:1:21261b20e5]2)Hoe zoek je op zoekterm1 zonder zoekterm2? Dus iets van [code:1:21261b20e5]commando | grep zoekterm1 | grep !zoekterm2[/code:1:21261b20e5]
  • [quote:261620b84b="PeBo"]Wie helpt mij op weg met de volgende twee vraagjes over grep gebruikt in (met?) een pipe? 1) Wat is een kortere notatie voor:[code:1:261620b84b]commando | grep zoekterm1 | grep zoekterm2[/code:1:261620b84b][/quote:261620b84b]Zet de zoekwoorden in een bestand en gebruik [code:1:261620b84b]commando | grep -f bestand[/code:1:261620b84b][quote:261620b84b="PeBo"]2)Hoe zoek je op zoekterm1 zonder zoekterm 2? Dus iets van [code:1:261620b84b]commando | grep zoekterm1 | grep !zoekterm2[/code:1:261620b84b][/quote:261620b84b]Gebruik hievoor[code:1:261620b84b]commando | grep -v zoekterm1[/code:1:261620b84b]Als je bestanden wilt gebruiken kun je[code:1:261620b84b]commando | grep -f bestand1 | grep -v -f bestand2[/code:1:261620b84b]
  • grep is regel-gebaseerd; dat is goed om in het achterhoofd te houden. commando | grep zoekterm1 laat dus alleen [u:d151ad2824]regels[/u:d151ad2824] door die zoekterm1 bevatten. grep -v zoekterm2 laat regels waarin zoekterm2 niet voorkomt door. commando | grep zoekterm1 | grep -v zoekterm2 laat dus de regels door die zoekterm1 wel bevatten en zoekterm2 niet.
  • een kortere notatie voor commando | grep term1 | grep term2 is volgens mij niet zo intuïtief je wilt dus dat alleen regels worden doorgelaten waar zowel term1 als term2 in voorkomt. dat kan bijvoorbeeld zo: commando | grep 'term1.*term2' de combinatie '.*' betekent: 0 of meer willekeurige karakters. maar deze laat alleen regels door waar term1 vóór term2 staat. Als je ook andersom wilt, moet je egrep gebruiken (krachtiger (extended) regexps worden daarmee mogelijk): commando | egrep 'term1.*term2|term2.*term1' Wie weet er een slimmere manier met grep? Met sed of awk wordt het makkelijker: Sed: commando | sed -n '/term1/p;/term2/p' Awk: commando | awk '/term1/||/term2/ {print}'
  • [quote:fd53d5c79b="wbsoft"]Sed: commando | sed -n '/term1/p;/term2/p'[/quote:fd53d5c79b]En als term2 niet voor mag komen gebruik je[code:1:fd53d5c79b]commando | sed -n '/term2/d;/term1/p'[/code:1:fd53d5c79b][edit 9-2-2003 0:14]
  • Heren (?), bedankt voor het meedenken. Vooral[code:1:e39ae29929]grep -v zoekterm[/code:1:e39ae29929]en de variant in sed hielpen mij op weg. Mocht ik eens tegen iets kortere commando's aanlopen dan meld ik die hier nog even ... meer een luxeprobleem: zo'n dubbele pipe is natuurlijk op zich goed te doen. Zondagse overpeinzing: het is aardig om te merken dat ik - opgevoed onder Microsoft Windows, want met DOS deed ik eigenlijk weinig - onder Linux steed vaker de Konsole (van KDE dus) opentrek. Allerhande klusjes gaan simpelweg makkelijker, sneller etc in de Konsole. Alleen het vinden van de handigste commando's wil nog wel eens lastig zijn ...
  • ... maar dan is [i:4a5ac51f9e]man[/i:4a5ac51f9e] je vriend :)
  • Soms is man inderdaad een goede vriend. Zelf gebruik ik het echter vooral als naslagwerk (hoe doe je ook alweer ...? etc) en minder om iets helemaal nieuws te leren. Daarvoor zijn handboeken, tijdschriften, dit forum en dergelijke naar mijn idee prettiger. Ik vind man overigens wel handiger dan info, daar ben ik nog steeds niet aan gewend. 't Zal wel aan mij liggen ...
  • [quote:cfba8d69f8="PeBo"]Soms is man inderdaad een goede vriend. Zelf gebruik ik het echter vooral als naslagwerk (hoe doe je ook alweer ...? etc) en minder om iets helemaal nieuws te leren. Daarvoor zijn handboeken, tijdschriften, dit forum en dergelijke naar mijn idee prettiger. Ik vind man overigens wel handiger dan info, daar ben ik nog steeds niet aan gewend. 't Zal wel aan mij liggen ...[/quote:cfba8d69f8] nee, dat ligt niet aan jou info is van die waardeloze gnu shit... een idee van zo'n gast die dacht de wereld wel ff te veranderen en dus meteen maar een mooie goed werkende manual functie wilde vervangen... (vandaar dat je soms bij gnu proggies 'see info ? for more information' tegenkomt. ok, dat was idd een beetje FI ;)
  • info is ook wel aardig hoor. als je maar weet dat je op "L" (last) moet drukken om weer terug te komen waar je was. alleen sommige info's zijn nogal lang van stof (complete boeken) en vind dan maar eens snel wat je zoekt (notoir voorbeeld: de GRUB info pagina :o )
  • maar er kan inderdaad maar weinig op tegen mooi PostScript printen: [b:c45a5ec0c5]man -t blabla | lpr [/b:c45a5ec0c5] en dan op je gemakkie lezen. :)
  • Vandaag vond ik ergens op [url=slashdot.org]slashdot[/url] deze truc om infopages behapbaar te houden:[code:1:730727ccf7]info sed --subnodes --output - | less[/code:1:730727ccf7]Zo lijkt info opeens erg op man! Overigens werkt[code:1:730727ccf7]info:/sed[/code:1:730727ccf7]als url in het onvolprezen Konquereor ook héél aardig. (sed is in beide gevallen maar een voorbeeld ...)
  • Ja, Konqueror (of liever kio) is enorm handig. Ik sta ook verbaasd. Alleen vind ik man -r blaat | gv - nog net wat mooier dan KDEs rendering van manpages in khelpcenter, vooral voor printen.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.