Soms word gebruikers gekonfronteer met die behoefte om in enige lêers na sekere inligting te soek. Dikwels bevat konfigurasiedokumente of ander omvangryke data 'n groot aantal reëls, dus is dit nie moontlik om die nodige data met die hand te vind nie. Dan kom een van die ingeboude opdragte in Linux-bedryfstelsels tot die redding, wat u in staat sal stel om reëls letterlik binne enkele sekondes te vind.
Gebruik die grep-opdrag op Linux
Wat die verskille tussen Linux-verspreidings betref, speel hulle in hierdie geval geen rol nie, aangesien die span waarin u belangstel, is grep Dit is standaard in die meeste gemeentes beskikbaar en word presies dieselfde toegepas. Ons wil vandag nie net aksie bespreek nie grep, maar ook om die belangrikste argumente te ontleed wat die soekproses kan vergemaklik.
Kyk ook: Op soek na lêers in Linux
Voorbereidende werk
Alle verdere aksies sal deur die standaardkonsole uitgevoer word; dit stel u ook in staat om lêers slegs oop te maak deur die volledige pad na hulle te spesifiseer, of "Terminal" vanaf die nodige gids bekendgestel. U kan die ouermap van 'n lêer uitvind en op die konsole soos volg navigeer:
- Begin die lêerbestuurder en navigeer na die gewenste vouer.
- Klik met die rechtermuisknop op die gewenste lêer en kies "Properties".
- In die oortjie "Basiese" lees die reël "Ouer-lêergids".
- Nou hardloop "Terminal" handige metode, byvoorbeeld deur die menu of deur die toetskombinasie te druk Ctrl + Alt + T.
- Gaan hierna na die gids deur die opdrag
CD / huis / gebruiker / gids
waar gebruiker - gebruikersnaam, en gids - naam van die lêergids.
Betrek die spankat + lêernaam
as u die volledige inhoud wil sien. Raadpleeg ons ander artikel op die onderstaande skakel vir meer inligting oor die werk met hierdie span.
Lees meer: Voorbeelde van katteopdragte op Linux
Deur bogenoemde te doen, kan u dit gebruik grep, wat in die nodige gids is, sonder om die volledige pad na die lêer te spesifiseer.
Standard inhoud soek
Voordat u al die beskikbare argumente oorweeg, is dit belangrik om gereeld na die inhoud te soek. Dit sal nuttig wees in die oomblikke wanneer u 'n eenvoudige pasmaat volgens waarde moet vind en al die toepaslike reëls op die skerm moet vertoon.
- Tik op die opdrag aan
grep-woordtoets
waar woord - inligting gesoek, en test file - lêernaam. Spesifiseer die volledige pad as voorbeeld as u buite die gids soek/ huis / gebruiker / gids / lêernaam
. Druk die toets nadat u die opdrag ingevoer het Tik. - Dit bly slegs om u vertroud te maak met die beskikbare opsies. Volle reëls sal op die skerm vertoon word en sleutelwaardes word in rooi uitgelig.
- Dit is ook belangrik om hoofletters sensitief te wees, aangesien Linux-kodering nie geoptimaliseer is vir soektogte sonder groot of klein karakters nie. As u die definisie van 'n register wil omseil, voer dan in
grep -i "woord" testbestand
. - Soos u kan sien, het die resultaat in die volgende skermkiekie verander en nog 'n nuwe reël bygevoeg.
String Capture Search
Soms moet gebruikers nie net die presiese pasmaat op die lyne vind nie, maar ook die inligting wat agter hulle kom, uitvind, byvoorbeeld wanneer hulle 'n spesifieke fout rapporteer. Dan sou die regte besluit wees om die eienskappe toe te pas. Tik die konsole ingrep -A3 "woord" -testyl
om in die uitslag en die volgende drie reëls na die wedstryd in te sluit. Jy kan skryf-A4
, dan word vier reëls vasgelê, daar is geen beperkings nie.
As in plaas daarvan-A
pas u die argument toe-B + ry-telling
gevolglik word die data wat voor die ingangspunt geleë is, vertoon.
argument-C
teken op sy beurt die lyne rondom die sleutelwoord.
Hieronder sien u voorbeelde van die toewysing van die gespesifiseerde argumente. Let daarop dat u hoofletters moet wees en dubbele aanhalingstekens moet gebruik.
grep -B3 "woord" -testyl
grep -C3 "woord" -testyl
Soek na sleutelwoorde aan die begin en einde van reëls
Die behoefte om 'n sleutelwoord aan die begin of aan die einde van 'n reël te definieer, kom meestal voor wanneer u met konfigurasielêers werk, waar elke reël vir een parameter verantwoordelik is. Om die presiese inskrywing aan die begin te sien, is dit nodig om te registreergrep "^ woord" toetslêer
. merk ^ net verantwoordelik vir die gebruik van hierdie opsie.
Die soeke na inhoud aan die einde van die reël volg ongeveer dieselfde beginsel, slegs in aanhalingstekens moet u 'n karakter byvoeg $, en die opdrag sal so lyk:grep "woord $" -toestand
.
Getalsoektog
As u na die gewenste waardes soek, het die gebruiker nie altyd inligting oor die presiese woord wat in die lyn voorkom nie. Dan kan die soekprosedure deur syfers gedoen word, wat die taak soms baie vergemaklik. Dit is slegs nodig om die betrokke span in die vorm te gebruikgrep "[0-7]" -testyl
waar «[0-7]» - waardesreeks, en test file - die naam van die lêer om te skandeer.
Ontleding van alle gidslêers
Rekursief is om alle voorwerpe in een lêergids te skandeer. Die gebruiker moet slegs een argument toepas, wat al die lêers in die lêergids ontleed en die toepaslike reëls en die ligging daarvan vertoon. Moet ingaangrep -r "woord" / huis / gebruiker / gids
waar / huis / gebruiker / gids - pad na die gids vir skandering.
Die lêerberging sal in blou vertoon word, en as u reëls sonder hierdie inligting wil kry, ken u 'n ander argument toe sodat die opdrag so lykgrep -h -r "woord" + vouerpad
.
Akkurate woordsoek
Aan die begin van die artikel het ons al gepraat oor die gewone woordsoek. Met hierdie metode sal addisionele kombinasies egter in die resultate vertoon word. U vind byvoorbeeld die woord gebruikermaar die opdrag vertoon ook die gebruiker123, wagwoordGebruiker en ander wedstryde, indien enige. Om hierdie resultaat te vermy, ken u die argument toew
(grep -w "woord" + lêernaam of plek
).
Hierdie opsie word ook uitgevoer as dit nodig is om tegelyk na verskillende presiese sleutelwoorde te soek. In hierdie geval, voer inegrep -w 'woord1 | woord2' testifiel
. Let daarop dat in hierdie geval grep brief word bygevoeg e, en die aanhalingstekens is enkel.
Soek na snare sonder 'n spesifieke woord
Die betrokke hulpmiddel kan nie net woorde in lêers vind nie, maar vertoon ook lyne wat nie 'n gebruiker-gedefinieerde waarde het nie. Voordat u die sleutelwaarde invoer, word die lêer bygevoegv
. Danksy haar, wanneer u 'n opdrag aktiveer, sal u slegs die relevante gegewens sien.
sintaksis grep versamel 'n paar argumente wat kortliks beskryf kan word:
-Ek
- toon slegs die name van lêers wat ooreenstem met die soekkriteria;s
- deaktiveer kennisgewings van foute wat gevind is;-n
- vertoon die lynnommer in die lêer;-b
- toon die bloknommer voor die reël.
Niks verhinder u om meerdere argumente vir 'n enkele bevinding toe te pas nie, voer dit slegs in mekaar, geskei deur spasies, en onthou om hoofletters sensitief te wees.
Ons het die span vandag in detail uitmekaar gehaal grepbeskikbaar op Linux-verspreidings. Dit is een van die standaard en word gereeld gebruik. U kan lees oor ander gewilde gereedskap en die sintaksis daarvan in ons aparte materiaal op die volgende skakel.
Kyk ook: Dikwels gebruikte opdragte in die Linux-terminale