Er Glark en bedre Grep?

GNU grep er en av mine går til verktøy på alle Linux-boksen. Men grep er ikke det eneste verktøyet i byen. Hvis du ønsker å prøve noe litt annerledes, sjekk ut glark et grep alternativ som kanskje kan være bedre i enkelte situasjoner.

Hva er glark? I utgangspunktet er det et verktøy som ligner på grep, men den har noen funksjoner som grep ikke gjør. Dette inkluderer komplekse uttrykk, Perl-kompatible regulære uttrykk, og uten binærfiler. Det gjør også viser kontekstuelle linjene litt enklere. La oss ta en titt.

Jeg installerte glark (ja, irriterende det er enda en * nix verktøy som ikke har noen innledende lokket) på Linux Mint 11. Bare ta det med apt-get install glark og du bør være godt å gå

Enkle søk fungerer på samme måte som med grep. glark string
filnavn
. Så det er ganske mye en drop-in erstatning for dem.

Men du er interessert i hva som gjør glark spesiell. Så la oss starte med et komplekst uttrykk, hvor du leter etter dette eller
dette ordet:

glark -r -o thing1 thing2 *

Her søkes det aktuelle katalog og underkataloger for " thing1 " eller ". thing2 " Når resultatene blir returnert, vil glark fargelegging resultatene og hver søkeord vil bli uthevet i en annen farge. Så hvis du søker etter, sier " Mozilla " og " Firefox, " du vil se vilkårene i forskjellige farger.

Du kan også bruke denne for å se om noe kamper i løpet av noen få linjer med et annet begrep. Her er et eksempel:

glark --og = 3 -o Mozilla Firefox -o ID LXDE *

Dette var et søk var jeg bruker i min katalog av Linux.com historier som jeg har redigert. Jeg brukte tre begrepene jeg visste var i en historie, og ett begrep jeg visste ville ikke være. Du kan også bare bruke --og muligheten til å få øye på to begrepene innenfor X antall linjer med hverandre, som så:

glark --og = 3 term1 term2

På den måten både vilkår må være til stede.

Du vil merke den --og alternativet er litt enklere enn grep kontekstlinjen. Men glark prøver å holde seg kompatibel med grep, så det støtter også -A, -B og -C alternativer fra grep.

Miss grep output format? Du kan fortelle glark å bruke grep format med --grep alternativet.

De fleste, om ikke alle, bør GNU grep alternativene fungerer med glark.

Før og etter

Hvis du trenger å søke gjennom begynnelsen eller slutten av en fil, har glark den --before og --after alternativer (kortversjoner, -B og -a). Du kan bruke disse som prosenter eller som absolutte antall linjer. For eksempel:

glark -a 20 uttrykk product: *

Det vil finne forekomster av uttrykk
etter linje 20 i en fil
<. h3> Den glark konfigurasjonsfil

Merk at du kan ha en ~ /.glarkrc som vil sette vanligste alternativene for hver bruk av glark (med mindre overstyres på kommandolinjen). Mannen side for glark ikke inkluderer noen eksempler, som så:


 etter-sammenheng: 1before-sammenheng: 6context: 5file-color: blue på yellowhighlight: offignore-saken: falsequiet: yestext -farge: bold reverseline-nummer-color: boldverbose: falsegrep: true 


Bare putte det i din ~ /.glarkrc og tilpasse den til ditt hjerte innhold. Legg merke til at jeg har satt meg til grep: falsk og lagt binærfiler: uten-kamp alternativet. Du vil definitivt vil stille muligheten til å undertrykke alle notater om kataloger, etc. Se man-siden for flere alternativer. Det er sannsynligvis en god ide å bruke ca 10 minutter på å sette opp en konfigurasjonsfil.

Final Thoughts

En ting som jeg har lagt merke til er at glark ikke synes så fort som grep. Når jeg gjør en rekursiv søk gjennom en haug med kataloger som inneholder (for det meste) HTML-filer, synes jeg å få resultater mye raskere med grep. Dette er ikke veldig viktig for det meste av ting jeg gjør med enten verktøyet. Men hvis du gjør noe der ytelse er en viktig faktor, så vil du kanskje å se om grep passer regningen bedre

Er glark &​​quot;. Bedre " enn grep? Det kommer helt an på hva du gjør. Den har noen funksjoner som gir den et forsprang på grep, og jeg tror det er veldig mye verdt å prøve ut hvis du aldri har gitt det en sjanse.