Die manpage vir grep beskryf die - Ek vlag soos volg: - Ek Ignoreer binêre lêers. Hierdie opsie is gelykstaande aan --binary-filewithout-wedstryd opsie. Dit sê ook dit oor binêre lêers: --binary-filesvalue Beheer soek en druk van binêre lêers. Opsies is binêre, die verstek: soek binêre lêers, maar hulle nie druk sonder-wedstryd: moenie soek binêre lêers en teks: behandel al die lêers as teks. Ek kan nie dink aan 'n scenario waar ek sou omgee wedstryde in binêre lêers. As so 'n scenario bestaan, sekerlik moet dit eerder die uitsondering as die norm wees. Hoekom nie die geval is grep binêre lêers te ignoreer by verstek eerder as wat die opstel van hierdie vlag om dit te doen gevra 28 Maart 13 aan 15:58 Dit kan eintlik baie nuttig. Byvoorbeeld, is ek op soek na die eenheid weergawe van 'n projek, en couldn39t onthou watter lêer dit was in gehou. Ek het gesoek vir die formaat van die weergawe, en dit het met 'n paar binêre lêers wat ooreenstem met. Dit blyk as dit was pre-weergawe 5, die weergawe was net in 'n binêre lêer, sodat sonder die binêre wedstryd, ek kon dit gemis. â € Svend Hansen 2 Februarie by 09:17 2 Antwoorde Nie alles wat grep dink is 'n binêre lêer, is eintlik 'n binêre lêer. bv poppe logs het ANSI kleurkodering in hulle, wat maak grep dink theyre binêre. ID nog steeds wil hulle soek as Im grepping deur / var / log though. grep - Linux command line, om te soek na patroon (string) in lêers Inleiding grep is 'n program om te kyk vir spesifieke snare in lêers, maak 'n soektog reël vir reël jy kan ook gebruik om gewone uitdrukking in plaas van 'n string. grep opsies patroon lêer lys grep uitset met geen opsies is al die lyne wat die patroon in die gegewe lêer bevat. Sommige van sy meer nuttige opsies is: v saam met die lyn Draai die gedrag van grep en maak dit 'n lys van die lyne wat nie die patroon - n die lyn waar die patroon is (of nie met behulp van die opsie-v) Programme bevat aantal - C die aantal lyne wat die patroon in die gee lêer (s) bevat - i Maak grep om te wys as 'n wedstryd maak nie saak die geval, (laer of hoër) en daarom is dit nie die geval meer sensitief n paar voorbeelde van hierdie opsies gee is: met die lêer grep. txt (wat die man bladsy van grep hieronder gelys) grep-c baie grep. txt 1 grep-c in grep. txt 181 grep - i e grep. txt e fout verslae aan gogga-GNU-utilsgnu org. Maak seker dat jy die grep - i - n e grep. txt 408 sluit in: E-pos fout verslae aan bug-gnu-utilsgnu. org. Maak seker dat jy sluit die Dit is ook 'n groot vir ontfouting, dit wil sê: As jy probeer om 'n boodskap wat van dhcpd in jou / var / log / messages lêer te vind, maar dit het te veel inligting oor dit, kan jy saam met stert om so iets te hê. stert-f / var / log / messages Jy sal nou sien op die skerm net die boodskappe wat die string DHCP bevat nie saak hoeveel boodskappe kan kom jou boodskappe lêer. Grep (1) grep (1) NAAM grep, egrep, fgrep, rgrep - druk lyne wat ooreenstem met 'n patroon SINOPSIS grep opsies PATROON-lêer. grep opsies - e PATROON-f Lêer. BESKRYWING grep soek die naam van invoer lêers (of standaard insette indien geen lêers is vernoem, of die lêernaam - gegee) vir lyne wat 'n wedstryd om die gegewe patroon. By verstek, grep druk die ooreenstemmende lyne. Daarbenewens drie variant programme egrep, fgrep en rgrep is tevergeefs staat. egrep is dieselfde as grep - E. fgrep is dieselfde as grep - F. rgrep is dieselfde as grep r. OPTIONS - A NUM, --after-contextNUM Print NUM lyne van sleep konteks na wat ooreenstem met die lyne. Plaas 'n lyn met - tussen aangrensende groepe van wedstryde. - a, text Proses n binêre lêer asof dit teks dit is gelykstaande aan die opsie --binary-filestext. - B NUM, --before-contextNUM Print NUM lyne van die voorste konteks voor wat ooreenstem met lyne. Plaas 'n lyn met - tussen aangrensende groepe van wedstryde. - b,---byte geneutraliseer Druk die byte binne die insette lêer voor elke lyn van die produksie. --binary-filesTYPE As die eerste paar grepe van 'n lêer te dui dat die lêer bevat binêre data, aanvaar dat die lêer is van tipe TYPE. By verstek, tipe is binêre, en grep gewoonlik uitgange óf 'n een-lyn MES Sage sê dat 'n binêre lêer wedstryde, of geen boodskap as daar geen wedstryd. As tipe is sonder-wedstryd, grep aanvaar dat 'n binêre lêer beteken dit nie pas is gelykstaande aan die - Ek opsie. As tipe is teks, grep prosesse 'n binêre lêer asof dit teks dit is gelykstaande aan die - a opsie. Waarskuwing: grep --binary-filestext dalk uitset binêre vullis, wat nare newe-effekte kan hê as die uitset is 'n terminale en indien die beindig nale bestuurder interpreteer 'n deel daarvan as bevele. - C NUM, --contextNUM Print NUM lyne van uitset konteks. Plaas 'n lyn met - tussen aangrensende groepe van wedstryde. - c, --count Onderdruk normale uitset plaas druk 'n telling van wat ooreenstem met lyne vir elke insette lêer. Met die v, --invert-wedstryd opsie (sien onder), tel nie-ooreenstemmende lyne. --colourWHEN, --colorWHEN rondom die bypassende string met die merker vonds in GREPCOLOR omgewing veranderlike. Wanneer mag wees nie, altyd, of motor - D Aksie, --devicesACTION As 'n invoer lêer is 'n toestel, EIEU of potjie, gebruik Aksie om pro ning dit. By verstek, is Aksie lees, wat beteken dat toestelle lees net asof hulle gewone lêers. As aksie oor te slaan, is toestelle in stilte oorgeslaan. d Aksie, --directoriesACTION As 'n invoer lêer is 'n gids, gebruik aksie om dit te verwerk. By verstek, is Aksie lees, wat beteken dat dopgehou gelees net asof hulle gewone lêers. As aksie oor te slaan, direkteure Tories is stilweg oorgeslaan. As aksie is recursief, grep lui al die lêers onder elke gids, rekursief is dit gelykstaande aan die r opsie. - E, --extended-Regexp interpreteer patroon as 'n uitgebreide gewone uitdrukking (sien onder). - e patroon --regexpPATTERN Gebruik patroon as die patroon nuttig om patrone wat begin met die beskerming van -. - F, --fixed-Snare interpreteer patroon as 'n lys van vaste snare, geskei deur nuwe lyne, een van wat moet ooreenstem. f lêer, --fileFILE patrone Kry uit lêer, een per reël. Die leë lêer con tains nul patrone, en wedstryde dus niks. G, --basic-regexp interpreteer patroon as 'n basiese gewone uitdrukking (sien onder). Dit is die standaard. - H, With-lêernaam Druk die lêernaam vir elke wedstryd. h, --no-filename onderdruk die vooraf van lêername op uitset wanneer veelvuldige lêers word gesoek. help uit te voer Uitgawe n kort hulp boodskap. - Ek Proses n binêre lêer asof dit nie ooreenstem met data het dit bevat is gelyk aan die --binary-fileswithout-wedstryd opsie. - i, --ignore-geval ignoreer geval onderskeidings in beide die patroon en die invoer lêers. - L, --files-Sonder-wedstryd Onderdruk normale uitset plaas die naam van elke insette lêer waaruit geen uitset normaalweg sou gewees gedruk druk. Die skandering sal stop op die eerste wedstryd. l, --files-met-wedstryde Onderdruk normale uitset plaas die naam van elke insette lêer waaruit uitset normaalweg sou gewees gedruk druk. Die skandering sal stop op die eerste wedstryd. --labelLABEL Gee insette eintlik vandaan kom standaard insette as insette com ing van lêer etiket. Dit is veral nuttig vir gereedskap soos zgrep, bv Gzip-CD foo. gz grep --labelfoo iets --line-gebuffer Gebruik lyn buffer, kan dit 'n prestasie straf wees. - m NUM, --max-countNUM ophou lees 'n lêer na NUM ooreenstem lyne. As die insette is standaard insette van 'n gewone lêer, en NUM bypassende lyne uitset, grep verseker dat die standaard insette is geposisioneer om net na die laaste bypassende lyn voor jy afsluit, ongeag die teenwoordigheid van sleep konteks lyne. Dit stel 'n roeping proses om 'n soektog te hervat. Wanneer grep stop nadat NUM ooreenstem lyne, wat dit uitset enige sleep konteks lyne. Wanneer die-c of --count opsie ook gebruik word, grep nie uitset n telling van meer as NUM. Wanneer die v of --invert-wedstryd opsie ook gebruik word, grep stop nadat uitdruk NUM nie-ooreenstemmende lyne. --mmap Indien moontlik, gebruik die MMAP (2) stelsel oproep om te lees insette, in plaas van die standaard te lees (2) stelsel roep. In sommige gevalle, --mmap lewer beter prestasie. Tog kan --mmap undefined gedrag (insluitende kern stortingsterreine) veroorsaak as 'n invoer lêer krimp terwyl grep werksaam, of as 'n I / O fout begaan. - n, --line-nommer Voorvoegsel elke lyn van die produksie met die lyn nommer binne sy insette lêer. o, --only-passing Wys net die deel van 'n bypassende lyn wat ooreenstem patroon. P, --perl-regexp interpreteer patroon as 'n Perl gereelde uitdrukking. q, --quiet, --silent Stil niks standaard uitset skryf. Verlaat onmiddelik ately met 'n nul status as enige wedstryd is gevind, selfs al is 'n fout is opgespoor. Sien ook die opsie-s of --no-boodskappe. - R, R, --recursive Lees al die lêers onder elke gids, rekursief dit equiv Talent om die recursief opsie d. --includePATTERN recursief in dopgehou net soek lêer ooreenstem patroon. --excludePATTERN recursief in dopgehou slaan lêer ooreenstem patroon. s, --no-boodskappe Onderdruk fout boodskappe oor bestaande of deurmekaar lêers. Port nota: in teenstelling met GNU grep, tradisionele grep het nie ge vorm om POSIX.2, omdat tradisionele grep gebrek aan 'n - q opsie en sy s opsie gedra soos opsie GNU greps - q. Shell skrifte bedoel draagbare tradisionele grep te wees moet beide - q en-s te vermy en moet uitvoer na / dev / null plaas lei. - U, --binary Behandel die lêer (s) as binêre. By verstek, onder MS-DOS en MS - Windows, grep raai die tipe lêer deur te kyk na die inhoud van die eerste 32KB lees van die lêer. As grep die lêer besluit is 'n tekslêer, dit stroop die CR karakters van die oorspronklike dossier inhoud (om gereelde uitdrukkings te maak met en korrek te werk). Spesifisering - U voorrang hierdie raaiwerk, wat veroorsaak dat al die lêers gelees moet word en geslaag om die bypassende meganisme woordeliks as die lêer is 'n tekslêer met CR / LF pare aan die einde van elke lyn, sal hierdie veroorsaak dat sommige gereelde uitdrukkings te misluk. Hierdie opsie het geen effek op ander as MS-DOS en MS-Win DOWS platforms. - U, --unix-byte-skyf Verslag Unix-styl byte neutraliseer. Dit skakel veroorsaak grep om byte neutraliseer rapporteer asof die lêer was Unix-styl tekslêer, dit wil sê met CR karakters uitgetrek. Dit sal resultate identies aan loop grep op 'n Unix masjien te produseer. Hierdie opsie het geen effek tensy - b opsie ook gebruik dit het geen effek op ander as MS-DOS en MS-Windows plat vorms. - V, --version Druk die weergawe van grep standaard fout. Dit ver ging getal moet ingesluit word in alle fout verslae (sien onder). v, --invert-wedstryd Keer die sin van wat ooreenstem, nie-ooreenstemmende lyne te kies. w, --word-regexp Kies slegs daardie lyne met wedstryde wat geheel woorde te vorm. Die toets is dat die komende substring moet óf aan die begin van die lyn, of voorafgegaan deur 'n nie-woord con stituent karakter. Net so moet dit óf aan die einde van die lyn of gevolg deur 'n nie-woord samestellende karakter wees. Woord-samestellende karakters is letters, syfers, en die onderstreep. - x, --line-regexp Kies slegs daardie wedstryde wat presies ooreenstem met die hele lyn. - y Uitgediende sinoniem vir - i. - Z, --null Uitgawe n nul byte (die ASCII NUL karakter) in plaas van die karakter wat normaalweg volg 'n lêer naam. Byvoorbeeld, grep - lZ uitgange n nul byte na elke lêernaam in plaas van die gewone NEWLINE. Hierdie opsie maak die uitset ondubbelsinnig, selfs in die teenwoordigheid van lêername met ongewone karakters soos newlines. Hierdie opsie kan gebruik word met instruksies soos vind - print0, perl -0, soort - z en xargs -0 aan arbitrêre lêername, selfs diegene wat NEWLINE karakters verwerk. - z, --null-data Behandel die insette as 'n stel reëls, elke beëindig deur 'n nul byte (die ASCII NUL karakter) in plaas van 'n nuwe reël. Soos die - Z of --null opsie, kan hierdie opsie gebruik word met instruksies soos soort - z aan arbitrêre lêername verwerk. Reëlmatige uitdrukkings n gewone uitdrukking is 'n patroon wat 'n stel van snare beskryf. Gereelde uitdrukkings analoog gebou afreken Expres sies, deur gebruik te maak van verskeie operateurs om kleiner uitdrukkings te kombineer. grep verstaan drie verskillende weergawes van gewone uitdrukking sintaksis: basiese, uitgebrei, en Perl. In GNU grep, daar is geen verskil in beskikbare funksies met behulp van een van die eerste twee syntaxes. Met ander implementasies, basiese gereelde uitdrukkings minder kragtig. Die volgende beskrywing van toepassing op verleng gereelde uitdrukkings DIF ferences vir basiese gereelde uitdrukkings word daarna opgesom. Perl gereelde uitdrukkings voeg addisionele funksies, maar die implemen sie hier gebruik is ongedokumenteerde en is nie versoenbaar is met ander grep implementering. Die fundamentele boustene is die gereelde uitdrukkings wat ooreenstem met 'n enkele karakter. Die meeste karakters, insluitend alle briewe en syfers, is gereelde uitdrukkings wat hulself aan te pas. Enige metacharacter met spesiale betekenis kan aangehaal deur voorafgaande is dit met 'n back slash. A bracket uitdrukking is 'n lys van karakters omring deur en. Dit pas by enige enkele karakter in die lys as die eerste karakter van die lys is die kappie dan pas dit enige karakter nie in die lys. Byvoorbeeld, die gewone uitdrukking 0123456789 pas by enige enkele syfer. Binne 'n bracket uitdrukking, 'n reeks uitdrukking bestaan uit twee kentekens ters met 'n koppelteken. Dit pas by enige enkele karakter wat allerhande tussen die twee karakters, inklusiewe, met behulp van die lokaliteite versamel volgorde en karakter stel. Byvoorbeeld, in die standaard C land, A-D is gelykstaande aan ABCD. Baie locales sorteer karakters in dictio weef orde, en in hierdie lokaliteite A-D is tipies nie gelykstaande aan abcd dit dalk gelyk wees om aBbCcDd, byvoorbeeld. Om die tradisionele interpretasie van bracket uitdrukkings te kry, kan jy die C land gebruik deur die oprigting van die veranderlike LCALL omgewing ter waarde C. Ten slotte, sekere vernoem klasse karakters word vooraf vasgelê binne bracket uitdrukkings, soos volg. Hul name is selfverduidelikend, en hulle is: alnum :,: Alpha :,: CNTRL :,: syfer :,: grafiek :,: laer :,: Druk :,: punct :,: ruimte :,: boonste :, en : xdigit :. Byvoorbeeld,: alnum: beteken 0-9A-za-Z, behalwe die laaste vorm, hang af van die C land en die ASCII karakter enkodering, terwyl die voormalige is onafhanklik van land en karakter stel. (Let daarop dat die hakies in hierdie klas name is deel van die simboliese name, en moet ingesluit word bykomend tot die hakies afbakening die bracket lys.) Die meeste meta karakters verloor hul spesiale betekenis binne lyste. Om 'n letterlike plek dit sluit die eerste in die lys. Net so 'n letterlike plek sluit dit enige plek, maar eerste. Ten slotte, 'n letterlike sluit - plaas dit laaste. Die tydperk. ooreenstem met enige enkel karakter. Die simbool w is 'n sinoniem vir: alnum: en W is 'n sinoniem vir: alnum. Die kappie en die dollar teken is meta karakters wat onderskeidelik ooreenstem met die leë string aan die begin en einde van 'n lyn. Die simbole Dit en GT onderskeidelik ooreenstem met die leë string aan die begin en einde van 'n woord. Die simbool B pas by die leë string op die rand van 'n woord, en B pas by die leë string verskaf sy nie op die rand van 'n woord. 'N Gereelde uitdrukking kan gevolg word deur een van verskeie herhaling Oper ators. Die voorafgaande item is opsioneel en wat ooreenstem met hoogstens een keer. Die voorafgaande item sal nul of meer kere gekoppel. Die voorafgaande item sal een of meer keer gekoppel. Die voorafgaande item is presies n keer. Die voorafgaande item is ooreengestem n of meer kere. Die voorafgaande item is ooreengestem ten minste N keer, maar nie meer as m tye. Twee reëlmatige uitdrukkings kan saamgevoeg die gevolglike gewone uitdrukking ooreenstem met enige tou gevorm deur concatenating twee substringe wat onderskeidelik ooreenstem met die aaneengeskakelde aangestel vir subuitdrukkingen. Twee reëlmatige uitdrukkings kan bygestaan word deur die voeg sels operateur die gevolg gewone uitdrukking ooreenstem met enige tou wat ooreenstem met óf subex depressie. Herhaling neem voorrang bo aaneenskakellling, wat op sy beurt neem voorrang bo afwisseling. 'N Hele subexpression kan ingesluit word in hakies na die voorrang reëls ignoreer. Die backreference N, waar N 'n enkele syfer, ooreenstem met die substring voorheen gepaard gaan met die nde aangehaalde subexpression van die Depar lar uitdrukking. In basiese reëlmatige uitdrukkings die meta karakters. , Op te rig kan grep laat baie geheue gebruik. Daarbenewens sekere ander obskure gereelde uitdrukkings vereis eksponensiële tyd en ruimte, en kan veroorsaak grep hardloop uit die geheue. Backreferences is baie stadig, en kan eksponensiële tyd verg. GNU Projek 2002/01/22 grep (1) Im op soek na die string cat (sonder aanhalingstekens) in teks lêers in 'n gids boom. Sy op 'n gemeenskaplike Linux masjien, ek het bash dop: In die dopgehou is ook baie binêre lêers wat ooreenstem met cat. Aangesien hierdie resultate is nie relevant en vertraag die soek, wil ek grep te slaan op soek hierdie lêers (meestal JPEG en PNG beelde). Hoe sal ek doen, dat ek weet daar is die --excludePATTERN en --includePATTERN opsies, maar wat is die patroon formaat Die man bladsy van grep sê: Op soek op grep sluit. grep sluit uitsluit. grep sluit en variante nie vind enigiets relevante As Theres 'n beter manier van grepping net in sekere lêers, Im al daarvoor verskuiwing van die gewraakte lêers is nie 'n opsie. Ek kan nie soek net sekere dopgehou (die directory struktuur is 'n groot gemors, met alles wat oral). Ook, ek kan nie enigiets te installeer, so ek hoef te doen met 'n gemeenskaplike gereedskap (soos grep of die voorgestelde vonds). Updates: Adam Rosenfield se antwoord is presies wat ek was op soek na: rmeador se antwoord is ook 'n goeie oplossing. Dit soek rekursief, ignoreer binêre lêers, en nie die geval is na binne kyk Subversion verborge dopgehou N Paar pedanties punte mense nodig (.) om te weet: 1. Let op die gebrek aan aanhalingstekens rondom die glob hier: --exclude39. 39 doesn39t werk (ten minste met my GNU grep weergawe) omdat grep doesn39t ondersteuning in sy globs. Bogenoemde is dop-uitgebrei tot 39 - sluit Png --exclude. jpg39 (met die aanvaarding geen lêers wedstryd in die cwd - hoogs onwaarskynlik, aangesien jy gewoonlik lêername don39t begin met 39 - exclude39) wat grep hou net mooi. 2. --exclude is 'n GNU uitbreiding en nie deel van POSIX39s definisie van grep, so as jy skrifte met behulp van hierdie bewus skryf won39t hulle noodwendig uitgevoer word op nie-GNU stelsels. â € IJW 20 Januarie 11 by 14:11 topek: Goeie punt - indien u enige Cpp /.H lêers in jou huidige gids, dan sal die dop die glob voor beroep grep uit te brei, sodat you39ll eindig met 'n command line soos grep patroon r --includefoo. cpp --includebar. h rootdir. wat slegs sal soek lêers met die naam foo. cpp of bar. h. Indien u enige lêers wat ooreenstem met die glob in die huidige gids don39t het, dan is die dop gaan op die glob om grep, wat dit korrek interpreteer. â € Adam Rosenfield 14 Desember 11 by 22:51 As jy net wil binêre lêers te slaan, ek stel voor jy kyk na die - Ek opsie. Dit ignoreer binêre lêers. Ek maak gereeld gebruik van die volgende opdrag: Dit soek rekursief, ignoreer binêre lêers, en nie die geval blik binnekant Subversion verborge dopgehou, om watter patroon wat ek wil. Ek het dit gealiasseer as grepsvn op my boks by work. Linux en Unix grep opdrag grep. wat staan vir 'n wêreldwye gewone uitdrukking druk, prosesse teks reël vir reël en enige lyne wat ooreenstem met 'n bepaalde patroon druk. grep sintaksis Oorsig Grep is 'n kragtige instrument vir die wat ooreenstem met 'n gewone uitdrukking teen teks in 'n lêer, veelvuldige lêers, of 'n stroom van insette. Dit soek na die patroon van die teks wat jy spesifiseer op die command line, en uitgange van die resultate vir jou. Voorbeeld Gebruik Kom ons sê wil die frase ons produkte in HTML-lêers vinnig op te spoor op jou rekenaar. Kom ons begin deur te soek 'n enkele lêer. Hier, ons patroon is ons produkte en ons lêer produk-aanbieding. 'N Enkele lyn gevind wat ons patroon en grep uitgange die hele bypassende lyn aan die eindpunt. Die lyn is meer as ons terminale breedte sodat die teks om die volgende reëls, maar dit uitset ooreenstem met presies een lyn in ons lêer. Let wel: Die patroon is deur grep geïnterpreteer word as 'n gewone uitdrukking. In die bogenoemde voorbeeld, al die karakters wat ons gebruik (brief en 'n ruimte) is letterlik vertolk in 'n gereelde uitdrukkings, sodat net die presiese frase sal ooreenstem. Ander karakters het 'n spesiale betekenis egter mdash paar leestekens, byvoorbeeld. Vir meer inligting, sien ons gereelde uitdrukking Quick Reference. Besigtig grep uitset in kleur As ons gebruik die --color opsie, sal ons suksesvolle wedstryde word uitgelig vir ons: die lees van lyn nommers van suksesvolle wedstryde Dit sal nog meer nuttig wees as ons weet waar die bypassende lyn in ons lêer verskyn. Ons bypassende lyn is voorafgegaan deur 18:: wat sê dit stem ooreen met lyn 18 in ons lêer As ons die - n opsie spesifiseer, sal grep elke bypassende lyn met die lyn nommer voorvoegsel. Presterende geval-onsensitief grep soek Wat gebeur as ons produkte verskyn aan die begin van 'n sin, of verskyn in hoofletters Ons kan die - i opsie spesifiseer 'n geval-onsensitief wedstryd uit te voer: Die gebruik van die - i opsie, grep vind 'n wedstryd op die lyn 23 sowel. Soek veelvuldige lêers met behulp van 'n wildekaart As ons veelvuldige lêers te soek, kan ons almal soek met behulp van 'n wildekaart in ons lêernaam. In plaas daarvan om te spesifiseer produk-aanbieding. kan ons 'n asterisk () en die uitbreiding te gebruik. Wanneer die bevel uitgevoer word, sal die dop die asterisk uit te brei na die naam van 'n lêer wat gevind word (binne die huidige gids) wat eindig in. Let daarop dat elke lyn begin met die spesifieke lêer waar daardie wedstryd plaasvind. Rekursief soek subdirectory Ons kan ons soek na subgidse en lêers wat hulle bevat die gebruik van die r opsie, wat grep vertel sy soek rekursief te voer uit te brei. Kom ons verander ons lêernaam om net 'n asterisk (), sodat dit 'n lêer of gids naam sal pas, en nie net HTML-lêers: Dit gee ons drie bykomende wedstryde. Let daarop dat die naam gids ingesluit vir enige bypassende lêers wat nie in die huidige gids. Die gebruik van gereelde uitdrukkings meer kragtige soektogte Die ware krag van grep voer, is dat dit kan gebruik word om gereelde uitdrukkings te pas. (Dis wat die re in grep staan vir). Gereelde uitdrukkings gebruik spesiale karakters in die patroon string na 'n wyer verskeidenheid van snare te pas. Kom ons kyk na 'n eenvoudige voorbeeld. Kom ons sê jy wil elke voorkoms van 'n frase soortgelyk aan ons produkte in jou HTML-lêers te vind, maar die frase moet altyd begin met ons en eindig met produkte. Ons kan dié patroon in plaas spesifiseer: our. products. In gereelde uitdrukkings, is die punt (.) Geïnterpreteer word as 'n enkele-karakter wildcard. Dit beteken 'n karakter wat in hierdie plek sal pas verskyn. Die asterisk () beteken die voorafgaande karakter, verskyn nul of meer kere, sal ooreenstem. So die kombinasie. sal 'n aantal van 'n karakter aan te pas. Byvoorbeeld, sal ons ongelooflike produkte, ons s'n, die beste ooit produkte, en selfs ourproducts pas. En omdat die - i opsie is spesifiseer, ons produkte en ourproducts sal sowel pas. Kom ons loop die opdrag met hierdie gewone uitdrukking, en kyk wat bykomende wedstryde wat ons kan kry: Hier, ons het ook 'n wedstryd van die frase ons fyn produkte. Grep is 'n kragtige instrument wat jou kan help met teks lêers, en dit raak nog meer kragtige wanneer jy gemaklik raak met behulp van gereelde uitdrukkings. Tegniese beskrywing grep soek die naam van invoer lêer s (of standaard insette indien geen lêers is vernoem, of as 'n enkele streep (-) word aangegee as die lêernaam) vir lyne wat 'n wedstryd om die gegewe patroon. By verstek, grep druk die ooreenstemmende lyne. Daarbenewens drie variant programme egrep. fgrep en rgrep is beskikbaar: egrep is dieselfde as hardloop grep - E. In hierdie modus, grep evalueer jou PATROON string as 'n uitgebreide gewone uitdrukking (ERE). Deesdae maak ERE nie uit te brei baie ver buite basiese gereelde uitdrukkings, maar hulle kan nog steeds baie nuttig. Vir meer inligting oor verleng gereelde uitdrukkings, sien Basiese teen Uitgebreide Gereelde uitdrukkings. onder. fgrep is dieselfde as hardloop grep - F. In hierdie modus, grep evalueer jou PATROON string as 'n vaste string mdash elke karakter in jou string is letterlik behandel. Byvoorbeeld, as jou string 'n asterisk bevat (), grep sal probeer om dit aan te pas met 'n werklike asterisk eerder as die interpretasie van hierdie as 'n wildekaart. As jou string verskeie reëls bevat (indien dit newlines bevat), sal elke lyn word beskou as 'n vaste string, en een van hulle kan 'n wedstryd te aktiveer. rgrep is dieselfde as hardloop grep r. In hierdie modus, sal grep sy soek rekursief te voer. As dit 'n gids ontmoetings, sal dit deurkruis in die gids en voortgaan soek. (Simboliese skakels word geïgnoreer as jy wil dopgehou wat simbolies gekoppel soek, moet jy eerder gebruik maak van die opsie - R). In ouer bedryfstelsels, egrep. fgrep en rgrep was duidelike programme met hul eie exectuables. In die moderne stelsels, hierdie spesiale opdrag name is eenvoudig kortpaaie na grep met die toepaslike vlaggies aangeskakel. Hulle is funksioneel ekwivalent. Algemene opsies Druk 'n help boodskap kortliks op te som command-line opsies, en uitgang. As dit moontlik is, gebruik die MMAP stelsel oproep om te lees insette, in plaas van die standaard Lees stelsel oproep. In sommige gevalle, --mmap lewer beter prestasie. Tog kan --mmap undefined gedrag (insluitende kern stortingsterreine) veroorsaak as 'n invoer lêer krimp terwyl grep werksaam, of as 'n I / O fout begaan. Behandel die lêer (s) as binêre. By verstek, onder MS-DOS en MS-Windows, grep raai die tipe lêer deur te kyk na die inhoud van die eerste 32KB lees van die lêer. As grep die lêer besluit is 'n tekslêer, dit stroop die CR karakters van die oorspronklike dossier inhoud (om gereelde uitdrukkings te maak met en korrek te werk). Spesifisering - U voorrang hierdie raaiwerk, wat veroorsaak dat al die lêers gelees moet word en geslaag om die bypassende meganisme woordeliks as die lêer is 'n tekslêer met CR / LF pare aan die einde van elke lyn, sal hierdie veroorsaak dat sommige gereelde uitdrukkings te misluk. Hierdie opsie het geen effek op ander as MS-DOS en MS-Windows platforms. Behandel die insette as 'n stel reëls, elke beëindig deur 'n nul byte (die ASCII NUL karakter) in plaas van 'n nuwe reël. Soos die - Z of --null opsie, kan hierdie opsie gebruik word met instruksies soos soort - z aan arbitrêre lêername verwerk. Gereelde Expressions n gewone uitdrukking is 'n patroon wat 'n stel van snare beskryf. Gereelde uitdrukkings analoog gebou om uitdrukkings rekenkunde, deur die gebruik van verskillende operateurs om kleiner uitdrukkings te kombineer. grep verstaan drie verskillende weergawes van gewone uitdrukking sintaksis: quotbasicquot (BRE), quotextendedquot (ERE) en quotperlquot (koste verbonde). In GNU grep. daar is geen verskil in beskikbare funksies tussen basiese en uitgebrei syntaxes. Met ander implementasies, basiese gereelde uitdrukkings minder kragtig. Die volgende beskrywing van toepassing op uitgebreide gereelde uitdrukkings verskille vir basiese gereelde uitdrukkings word daarna opgesom. Perl gereelde uitdrukkings gee bykomende funksionaliteit. Die fundamentele boustene is die gereelde uitdrukkings wat ooreenstem met 'n enkele karakter. Die meeste karakters, insluitend alle briewe en syfers, is gereelde uitdrukkings wat hulself aan te pas. Enige meta-karakter met 'n spesiale betekenis kan aangehaal deur voorafgaande is dit met 'n back slash. Die punt (.) Ooreenstem met enige enkel karakter. Karakter klasse en Bracket Expressions n bracket uitdrukking is 'n lys van karakters omring deur en. Dit pas by enige enkele karakter in die lys as die eerste karakter van die lys is die kappie dan pas dit enige karakter nie in die lys. Byvoorbeeld, die gewone uitdrukking 0123456789 pas by enige enkele syfer. Binne 'n bracket uitdrukking, 'n reeks uitdrukking bestaan uit twee karakters met 'n koppelteken. Dit pas by enige enkele karakter wat allerhande tussen die twee karakters, inklusiewe, met behulp van die lokaliteite versamel volgorde en karakter stel. Byvoorbeeld, in die standaard C land, A-D is gelykstaande aan ABCD. Baie locales sorteer karakters in woordeboek orde, en in hierdie lokaliteite A-D is tipies nie gelykstaande aan abcd dit dalk gelyk aan aBbCcDd wees. byvoorbeeld. Om die tradisionele interpretasie van bracket uitdrukkings te kry, kan jy die C land gebruik deur die oprigting van die veranderlike LCALL omgewing ter waarde C. Ten slotte, sekere vernoem klasse karakters word vooraf vasgelê binne bracket uitdrukkings, soos volg. Hul name is selfverduidelikend, en hulle is: alnum:. : Alpha:. : CNTRL:. : Syfer. : Grafiek:. : Laer. : Druk:. : Punct:. : Ruimte:. : Boonste. en: xdigit:. Byvoorbeeld,: alnum: beteken die karakter klas van getalle en letters in die huidige land. In die C land en ASCII karakterstel enkodering, dit is dieselfde as 0-9A-za-Z. (Let daarop dat die hakies in hierdie klas name is deel van die simboliese name, en moet ingesluit word bykomend tot die hakies afbakening die bracket uitdrukking.) Die meeste meta-karakters verloor hul spesiale betekenis binne bracket uitdrukkings. Om 'n letterlike plek dit sluit die eerste in die lys. Net so 'n letterlike plek sluit dit enige plek, maar eerste. Ten slotte, 'n letterlike sluit -. plaas dit duur. Anker Die kappie en die dollar teken is meta-karakters wat onderskeidelik ooreenstem met die leë string aan die begin en einde van 'n lyn. Die back slash en Spesiale Expressions die simbole Dit en GT onderskeidelik ooreenstem met die leë string aan die begin en einde van 'n woord. Die simbool B pas by die leë string op die rand van 'n woord, en B pas by die leë string verskaf sy nie op die rand van 'n woord. Die simbool w is 'n sinoniem vir: alnum: en W is 'n sinoniem vir: alnum:. Herhaling n gewone uitdrukking kan gevolg word deur een van verskeie herhaling operateurs: Linux: grep opdrag NAAM grep, egrep, fgrep, rgrep - druk lyne wat ooreenstem met 'n patroon SINOPSIS BESKRYWING grep soek die naam van invoer lêer s (of standaard insette indien geen lêers is vernoem , of as 'n enkele koppelteken-minus (-) gegee as lêernaam) vir lyne wat 'n wedstryd om die gegewe patroon. By verstek, grep druk die ooreenstemmende lyne. Daarbenewens drie variant programme egrep, fgrep en rgrep is beskikbaar. egrep is dieselfde as grep - E. fgrep is dieselfde as grep - F. rgrep is dieselfde as grep r. Direkte aanroeping as óf egrep of fgrep is afgekeur, maar word toe te laat historiese programme wat staatmaak op hulle onveranderde hardloop. OPTIONS Generiese Program inligting help uit te voer Druk 'n gebruik boodskap kortliks op te som hierdie opdrag-lyn opsies en die fout verslagdoening adres, dan uitgang. - V. --version Druk die weergawe van grep om die standaard uitset stroom. Hierdie weergawe nommer ingesluit moet word in al fout verslae (sien onder). Matcher Seleksie - E. --extended-regexp interpreteer patroon as 'n uitgebreide gewone uitdrukking (ERE, sien hieronder). (-E Gespesifiseer deur POSIX.) - F. --fixed-snare interpreteer patroon as 'n lys van vaste snare, geskei deur newlines, enige waarvan word gekoppel. (-F Gespesifiseer deur POSIX.) G. --basic-regexp interpreteer patroon as 'n basiese gewone uitdrukking (BRE, sien hieronder). Dit is die standaard. P. --perl-regexp interpreteer patroon as 'n Perl gereelde uitdrukking (PCRE, sien hieronder). Dit is hoogs eksperimentele en grep P kan waarsku van nie-getrek funksies. Wat ooreenstem met die beheer-e-patroon. --regexp patroon te kan gebruik patroon as die patroon. Dit kan gebruik word om verskeie search patrone spesifiseer, of om 'n patroon wat begin met 'n koppelteken te beskerm (-). (-e Gespesifiseer deur POSIX.) F-lêer. file lêer Kry patrone uit te dien. een per reël. Die leë lêer bevat nul patrone, en wedstryde dus niks. altyd. Dit stel 'n roeping proses om 'n soektog te hervat. bv - n. - U. . byvoorbeeld. in daardie volgorde. As jy egter die Boole rv vermoë en die v opdrag-lyn-opsie is beide gespesifiseerde, dit is van toepassing op geselekteerde nie-wat ooreenstem met lyne plaas. deel. LCCTYPE. LCMESSAGES.
No comments:
Post a Comment