Soms word gebruikers gekonfronteer met die behoefte om sekere inligting binne enige lêers te soek. Dikwels bevat konfigurasie dokumente of ander volumetriese data 'n groot aantal lyne, dus dit is onmoontlik om die nodige data handmatig te vind. Dan kom een van die ingeboude opdragte van Linux-bedryfstelsels tot die redding, wat jou toelaat om die reëls binne 'n paar sekondes te vind.
Gebruik die grep opdrag in Linux.
Wat die verskille tussen Linux-verspreidings betref, speel hulle in hierdie geval geen rol nie, aangesien die opdrag jy belangstel grep By verstek is dit beskikbaar in die meeste gemeentes en word dit presies dieselfde toegepas. Vandag wil ons nie net die aksie bespreek nie grep, maar ook om die hoofargumente wat die soekprosedure aansienlik kan vereenvoudig, te demonstreer.
Sien ook: Ons soek lêers in Linux
Voorbereidende werk
Alle verdere aksies sal via 'n standaardkonsole uitgevoer word. Dit kan u ook net oopmaak deur die volle pad na hulle te spesifiseer of indien "Terminal" van die vereiste gids gelanseer. U kan die ouergids van 'n lêer uitvind en na die konsole soos volg gaan:
- Begin die lêerbestuurder en navigeer na die verlangde vouer.
- Regskliek op die verlangde lêer en kies "Properties".
- In die oortjie "Basiese" lees die lyn "Ouer gids".
- Nou hardloop "Terminal" gerieflike metode, byvoorbeeld, deur die spyskaart of deur die sleutelkombinasie te druk Ctrl + Alt + T.
- Hier gaan na die gids via die opdrag
CD / huis / gebruiker / gids
waar gebruiker - gebruikersnaam, en gids - gids naam.
Betrokke spankat + lêernaam
as jy die volle inhoud wil sien. Gedetailleerde instruksies oor hoe om met hierdie span te werk, kan u vind in ons ander artikel by die onderstaande skakel.
Lees meer: Voorbeelde van die kat opdrag in Linux
Deur die stappe hierbo te volg, kan u dit gebruik grep, in die nodige gids, sonder om die volle pad na die lêer te spesifiseer.
Standaard inhoudsoektog
Voordat u al die beskikbare argumente oorweeg, is dit belangrik om kennis te neem van die gewone soektog deur die inhoud. Dit sal nuttig wees in daardie oomblikke wanneer jy 'n eenvoudige wedstryd volgens waarde moet vind en al die relevante lyne moet vertoon.
- Tik by die opdragprompt
grep woord testfile
waar woord - die vereiste inligting, en test file - lêernaam. As u 'n soektog buite die gids doen, spesifiseer die volledige pad na die voorbeeld./ huis / gebruiker / gids / lêernaam
. Nadat u die opdrag ingevoer het, druk die sleutel Tik. - Dit bly net om kennis te maak met die beskikbare opsies. Volledige lyne word op die skerm vertoon, en sleutelwaardes word in rooi gemerk.
- Dit is belangrik om die geval van briewe in ag te neem, aangesien die Linux-kodering nie geoptimaliseer is vir soek sonder om groot of klein karakters in ag te neem nie. As jy die definisie van 'n register wil omseil, tik
grep -i "woord" toetslêer
. - Soos u kan sien, is die resultaat in die volgende skermkiekie verander en nog een nuwe reël is bygevoeg.
Soek met snaaropname
Soms moet gebruikers nie net 'n presiese wedstryd in die rye vind nie, maar ook die inligting wat na hulle kom, uitvind, byvoorbeeld wanneer 'n spesifieke fout gerapporteer word. Dan is die korrekte oplossing om die eienskappe toe te pas. Tik in die konsolegrep -A3 "woord" toetslêer
om die volgende drie lyne in die uitslag na die wedstryd in te sluit. Jy kan skryf-A4
, dan sal vier lyne gevang word, daar is geen beperkings nie.
As plaas-A
jy pas die argument toe-B + aantal lyne
Gevolglik sal die data tot die punt van inskrywing vertoon word.
argument-C
op sy beurt, neem lyne om 'n navraag vas.
Hieronder kan u voorbeelde van die opdrag van die gespesifiseerde argumente sien. Let asseblief daarop dat dit nodig is om die geval in ag te neem en dubbel aanhalings te plaas.
grep -B3 "word" testfile
grep -C3 "woord" toetslêer
Soek sleutelwoorde aan die begin en einde van lyne
Die noodsaaklikheid om 'n navraag te definieer, wat aan die begin of aan die einde van 'n reël voorkom, kom meestal voor tydens die werk met konfigurasielêers, waar elke lyn vir een parameter verantwoordelik is. Om die presiese inskrywing aan die begin te sien, moet u registreergrep "^ word" toetslêer
. merk ^ net verantwoordelik vir die gebruik van hierdie opsie.
Soek na inhoud aan die einde van lyne gebeur ongeveer op dieselfde beginsel, net in aanhalingstekens moet jy die karakter byvoeg $, en die span sal hierdie vorm verkry:grep "word $" testfile
.
Soek vir nommers
As jy die gewenste waardes soek, het die gebruiker nie altyd inligting oor die presiese woord wat in die string voorkom nie. Dan kan die soekprosedure deur getalle gedoen word, wat soms die taak baie vereenvoudig. Dit is slegs nodig om die betrokke bevel in die vorm te gebruikgrep "[0-7]" testfile
waar «[0-7]» - reeks waardes, en test file - lêernaam om te scan.
Ontleding van alle gidslêers
Skandering van alle voorwerpe in dieselfde gids word rekursief genoem. Die gebruiker moet slegs een argument toepas, wat al die lêers in die gids ontleed en die toepaslike lyne en hul ligging vertoon. U moet inskryfgrep -r "word" / huis / gebruiker / gids
waar / huis / gebruiker / gids - Pad na die gids vir skandering.
Die plek waar die lêer gestoor word, sal in blou vertoon word, en as u die lyne sonder hierdie inligting wil kry, moet u 'n ander argument toeken om die opdrag te maakgrep -h -r "word" + gids pad
.
Presiese woordsoektog
Aan die begin van die artikel het ons al gepraat oor die gewone woordsoektog. Met hierdie metode sal addisionele kombinasies egter in die resultate vertoon word. Byvoorbeeld, jy vind die woord gebruiker, maar die opdrag sal ook gebruiker wys123, wagwoordGebruiker en ander wedstryde, indien enige. Om hierdie resultaat te vermy, gee 'n argument aanw
(grep -w "woord" + lêernaam of plek
).
Hierdie opsie word uitgevoer selfs as u op een slag verskeie presiese sleutelwoorde moet soek. In hierdie geval, tikegrep -w 'word1 | word2' testifile
. Let asseblief daarop dat in hierdie geval na grep 'n brief word bygevoeg e, en aanhalings is enkel.
Soek strings sonder 'n spesifieke woord
Die oorweeg nut kan nie net woorde in lêers vind nie, maar ook om lyne te vertoon waarin daar geen gebruiker-gespesifiseerde waarde is nie. Dan voordat die sleutelwaarde ingevoer word en die lêer bygevoeg wordv
. Danksy haar, as jy die opdrag aktiveer, sal jy net die relevante data sien.
sintaksis grep versamel nog 'n paar argumente, wat kortliks bespreek kan word:
-Ek
- Wys net die name van lêers wat ooreenstem met die soek kriteria;s
- deaktiveer kennisgewings oor foute wat gevind word;-n
- vertoonlynnommer in die lêer;-b
- toon die bloknommer voor die lyn.
Niks verhoed dat jy veelvuldige argumente op een bevinding toepas nie. Gee dit slegs deur 'n spasie geskei, en vergeet nie om die saak in ag te neem nie.
Vandag het ons die span in detail ontmantel grepbeskikbaar op Linux verspreidings. Dit is een van die standaard en word dikwels gebruik. U kan lees oor ander populêre gereedskap en hul sintaksis in ons afsonderlike materiaal by die volgende skakel.
Sien ook: Gereelde gebruik van opdragte in Linux Terminal