Vairāk

Kā vienā izteiksmē apvienot divas virknes aizstājošās funkcijas?

Kā vienā izteiksmē apvienot divas virknes aizstājošās funkcijas?


Es gribētu nomainīt dažas savas ielu etiķetes, piemēram, "Musterstraße"uz"Musterstr."vai"Muster Straße"uz"Muster Str."

Es to jau izdarīju pirmajā gadījumā:

aizstāt ("nosaukums", "straße", "str.")

un otrajā gadījumā:

aizstāt ("nosaukums", "Straße", "Str.")

Bet kā es varu apvienot abus?

Es izmēģināju dažādus stilus, piemēram:

aizstāt ("nosaukums", "straße", "str.") VAI aizstāt ("nosaukums", "straße", "str.") Aizstāt (aizstāt ("nosaukums", "straße", "str.") (" nosaukums ", 'straße', 'str.'))

Jāzepa risinājums ir labi lasāms, es to iesaku, bet, lai atbildētu uz jūsu sākotnējo jautājumu:

aizstāt (aizstāt ("nosaukums", "straße", "str."), "Straße", "Str.")

To var izdarīt, neizmantojot aizvietot funkcija:

gadījums, kad "nosaukums" LIKE "strabe", tad "str." kad "nosaukt" LIKE "Strabe", tad "Str." beigas

Tas ļauj viegli pievienot vairāk terminu jebkurai slejai.


Pastāv funkcija, lai atrastu apakšvirkni virknē (atrast), un funkcija, lai noteiktu virkni aizstātu virknē ar citu virkni (aizstāt), lai jūs varētu tos apvienot, lai iegūtu vēlamo efektu:

Atbildot uz komentāru, es domāju, ka aizstāt Visu, iespējams, izskatīsies apmēram šādi:

Izmantojot C ++ 11, varat izmantot std :: regex šādi:

Dubultā slīpsvītra ir nepieciešama, lai izvairītos no bēgšanas rakstura.

std :: string ir aizstājēja metode, vai tas ir tas, ko jūs meklējat?

Es pats neesmu izmēģinājis, vienkārši izlasiet dokumentāciju atrast () un aizstāt ().

Lai atgrieztu jauno virkni, izmantojiet šo:

Ja jums nepieciešama veiktspēja, šeit ir optimizēta funkcija, kas modificē ievades virkni, un tā neveido virknes kopiju:

Jā, jūs varat to izdarīt, bet jums ir jāatrod pirmās virknes pozīcija ar virknes find () locekli un pēc tam jāaizstāj ar tās aizstāt () locekli.

Ja plānojat izmantot standarta bibliotēku, jums patiešām vajadzētu iegūt grāmatas C ++ standarta bibliotēkas kopiju, kas ļoti labi aptver visu šo lietu.

Tas izklausās kā variants

string.replace (string.find ("% s"), virkne ("% s"). izmērs (), "Kaut kas")

Jūs to varētu ietvert funkcijā, taču šis vienas līnijas risinājums izklausās pieņemami. Problēma ir tā, ka tas mainīs tikai pirmo gadījumu, iespējams, vēlēsities to pārkārtot, taču tas arī ļauj ievietot vairākus mainīgos šajā virknē ar to pašu marķieri (% s)

Tas atkārtoti izsauc std :: string :: find (), lai atrastu citus meklētās virknes gadījumus, līdz std :: string :: find () neko neatrod. Jo std :: string :: find () atgriež pozīciju no spēles mums nav problēmu iteratoru nederēšanu.


Stīgu funkcijas

Lai strādātu ar virknēm, varat izmantot šīs virkņu funkcijas un arī dažas kolekcijas funkcijas. Stīgu funkcijas darbojas tikai uz stīgām.

Stīgu funkcija Uzdevums
konkat Apvienojiet divas vai vairākas virknes un atgrieziet kombinēto virkni.
beidzas ar Pārbaudiet, vai virkne beidzas ar norādīto apakšvirkni.
formatNumber Atgrieziet numuru kā virkni, pamatojoties uz norādīto formātu
vadība Ģenerējiet globāli unikālu identifikatoru (GUID) kā virkni.
indexOf Atgrieziet apakšpozīcijas sākuma stāvokli.
lastIndexOf Atgrieziet sākuma pozīciju pēdējam apakškārtas gadījumam.
garums Atgrieziet virknes vai masīva vienumu skaitu.
aizvietot Nomainiet apakšvirkni ar norādīto virkni un atgrieziet atjaunināto virkni.
sadalīt Atgriež masīvu, kurā ir apakšvirknes, atdalītas ar komatiem, no lielākas virknes, pamatojoties uz sākotnējā virknē norādīto atdalītāja rakstzīmi.
sākas ar Pārbaudiet, vai virkne sākas ar noteiktu apakšvirkni.
apakšvirkne Atgrieziet rakstzīmes no virknes, sākot no norādītās pozīcijas.
pazemināt Atgrieziet virkni mazo burtu formātā.
toUpper Atgrieziet virkni lielo burtu formātā.
sagriezt Noņemiet no virknes vadošo un aizmugurējo atstarpi un atgrieziet atjaunināto virkni.


Labākā pieredze

Funkcijas CONCATENATE vietā izmantojiet rakstzīmi & amp; amp.

Ampersanda (& amp) aprēķina operators ļauj jums apvienot teksta vienumus, neizmantojot funkciju.

Piemēram, = A1 un amp B1 atgriež to pašu vērtību kā = CONCATENATE (A1, B1). Daudzos gadījumos ampersanda operatora izmantošana ir ātrāka un vienkāršāka nekā virknes izveidošanai CONCATENATE izmantošana.

Izmantojiet funkciju TEXT, lai apvienotu un formatētu virknes.

Funkcija TEXT pārveido skaitlisko vērtību par tekstu un apvieno skaitļus ar tekstu vai simboliem.

Piemēram, ja šūnā A1 ir skaitlis 23,5, varat izmantot šādu formulu, lai formatētu skaitli kā summu dolāros:


Jums var rasties jautājums, kad ir jēga izmantot operatoru +, lai savienotu, un kad jums vajadzētu izmantot concat () metodi. Šeit ir dažas atšķirības starp abiem:

  • The concat () metodi var apvienot tikai String objektus - tas ir jāizsauc String objektam, un tā parametram jābūt String objektam. Tas padara to ierobežojošāku nekā + operators, jo operators klusējot pārveido jebkuru argumentu, kas nav virkne, par virkni.
  • The concat () metode met NullPointerException, ja objektam ir nulles atsauce, bet + operators ar nulles atsauci nodarbojas kā “null” virkne.
  • The concat ()) metode spēj apvienot tikai divas virknes - tajā nevar būt vairāki argumenti. The + operators var apvienot jebkuru virkņu skaitu.

Šo iemeslu dēļ + operators biežāk tiek izmantots virkņu kombinēšanai. Tomēr, ja izstrādājat plaša mēroga lietojumprogrammu, veiktspēja var atšķirties, jo Java rīkojas ar virkņu pārveidošanu, tāpēc ņemiet vērā kontekstu, kurā kombinējat virknes.


Patīkama jauna C # sintakse virkņu interpolācijai

Pirmajām vairākām C # versijām mēs formatējām virknes, izmantojot standartu virkne. Formāts API:

Šai API bija minimāli uzlabojumi, salīdzinot ar sintaksi printf un saistītās API, kas vispirms tika izstrādātas C valodai. Šīs API datētas ar 1970. gadu vidu vai agrāk.

Visos šajos gados mums vajadzēja tikt tālāk par šo API. Visbeidzot, izmantojot C # 6, jaunās virkņu interpolācijas funkcijas padarīs jūsu kodu daudz skaidrāku, kad veidojat virknes, kas ir teksta un aprēķināto vērtību kombinācija. Darbs ar formatētu tekstu ir tik izplatīts, ka tas varētu būt slepkava C # 6.

Šajā rakstā es parādīšu virknes interpolācijas piegādes sintaksi un apspriedu daudzus scenārijus, kuros to izmantosit. Es arī apspriedu dažas sintakses izmaiņas, kas šai funkcijai tika veiktas no sākotnējā publiskā priekšskatījuma līdz tās galīgai izlaišanai. Daži tīmekļa resursi joprojām attiecas uz iepriekšējām šīs funkcijas pirmslaišanas sintaksēm, tāpēc ir svarīgi zināt, kas ir aktuāls.

Sāksim ar pašreizējā sintakses atspoguļošanu, izmantojot vienkāršu piemēru. Šī koda rinda rada tādu pašu vērtību kā iepriekšējā piemērā:

Šajā piemērā ir sniegta pamata sintakse, kas izmantota virkņu interpolācijā C # 6. Jūs ieviešat virkņu interpolāciju, formāta virkni sākot ar dolāra zīmi ($) raksturs. Formas virknes "caurumus" atzīmē lencīte ( ) rakstzīmes. Galvenais uzlabojums ir iekavu iekšpusē, kur vēlākiem parametriem pozicionālo indeksu vietā ievietojat izteiksmes C #. Tas ir liels lasāmības uzlabojums & # 8212, un to ir daudz vieglāk labot. Tā vietā, lai izmantotu un meklējot šo parametru, jūs atrodat , kas uzreiz norāda, kas tiks ievietots formatētajā virknē. Ievērojiet, ka viens no manis izmantotajiem argumentiem ir vesels skaitlis (persona.Vecums). Tāpat kā ar virkne. Formāts, mēs varam izmantot jebkuru objektu. Kad šis objekts nav virkne, ietvars izsauks ToString () lai to pārveidotu par virkni. To pašu konstrukciju varētu uzrakstīt šādi:

Atcerieties, ka jūs varat ievietot jebkuru derīgu C # izteiksmi starp lencēm, kuras nav ierobežotas ar mainīgajiem. Piemēram, jūs varētu uzrakstīt punktu un tā attālumu no sākuma šādi:

Divi jēdzieni ir jauni. Apskatīsim šo piemēru uzmanīgi, un jūs redzēsiet, kā šie jēdzieni darbojas.

Pirmkārt, pēdējā izteiksme ir aicinājums uz Math.Sqrt, kur ir parametrs X ^ 2 + Y ^ 2 (izmantojot pamata Pitagora teorēmu, lai aprēķinātu taisnstūra trīsstūra hipotenūzu):

Jebkura derīga C # izteiksme ir atļauta rakstzīmes interpolētā virknē. Tas ietver & # 8212bet neaprobežojas ar & # 8212metodes zvaniem, LINQ vaicājumiem, aprēķiniem un nosacījumiem.

Izraksta papildu bikšturi (sarkanā sintakses izcelšanā) sniedz piemēru tam, kā uzrakstīt sākuma vai aizvēršanas bikšturi (<) vai (>) interpolētā virknē. Rakstot dubulto kreiso stiprinājumu (<<) ražo atvēršanas stiprinājumu (<) izvadē. Rakstot dubulto labo iekavu (>>) rada aizdari (>) izvadē.

Piemēram, ja punktam ir vērtības (3, 4) attiecībā uz x, y šis paziņojums tiks iestatīts str uz vērtību <3, 4> ir 5 no izcelsmes.

Tomēr visticamāk, ka x un y vērtības, un gandrīz noteikti attālums, ir divkāršās, kurām nav jaukas izejas. Noklusējuma attēlojumam būs jebkurš skaitlis aiz komata, un tas jums netiks labi formatēts. Virknes interpolācijas funkcija ļauj nomaiņas ietvaros norādīt formāta virknes. Peldošā komata vērtību ar diviem cipariem pa labi no komata var norādīt šādi:

Šīs izteiksmes "caurumā" varat ievietot jebkuru derīga formāta virkni. Novietojiet kolu (:) pēc izteiksmes un formāta virkne aiz kols. Derīgās formāta virknes ir atkarīgas no izteiksmes veida pirms kolas. Šeit ir visas manas formāta virknes F2, kas parāda divus ciparus pēc peldošā komata skaitļa aiz komata.

Pēc šīm izmaiņām mana koda rindiņa kļūst diezgan gara. Izmantosim burtisko virknes burtisko, lai sadalītu virkni:

Jā, jūs varat apvienot burtisko virknes burtisko tekstu ar interpolētajām virkņu konstrukcijām.

Visas derīgās C # izteiksmes ir labi

Tagad izpētīsim dažas šīs funkcijas malas. Es teicu, ka jebkura derīga C # izteiksme ir likumīga iekavās (<>) virkņu interpolācijai.

Daudzi API var izmantot virknes parametru. Piemēram, šīs rindas pašreizējo datumu formatē pielāgotā formātā:

Ievērojiet, ka nav nepieciešamas īpašas rakstzīmes, lai izvairītos no pēdiņām, kur tiek parādīts pašreizējais datums. Viss teksts, ko ievietojat starp sākuma un aizvēršanas iekavām formatējamā virknē, tiks parsēts kā C # avota kods. Tas netiks interpretēts kā burtiska virkne. Jebkura likumīga C # izteiksme ir derīga. Ikreiz, kad es demonstrēju šo funkciju konferencē vai lietotāju grupā, auditorijas cilvēki vienmēr cenšas izdomāt C # konstrukciju, kas nedarbosies. Viņiem tas vēl nav izdevies. Viena persona pat ieteica a virkne. Formāts zvaniet interpolētās virknes iekšienē. Jā, tas darbojas. Bet tas ir patiešām neglīts. Jā, jūs varat ligzdot interpolētas virknes. Lūdzu, nerakstiet šāda veida konstrukciju savā kodā! Es uzrakstīju šo rindu tikai tāpēc, lai parādītu, ka C # kompilators interpolētos virkņu argumentus apstrādā kā parastus C #:

Nu, tas ir ļoti neglīts. Bet ligzdotās interpolētās virknes parsē pareizi.

Ievērojiet, ka man bija jāapņem nosacītā izteiksme ar iekavām (treknrakstā zemāk), lai kompilators neinterpretētu kolu kā formāta virknes sākumu:

Nav nepieciešams neko traku rakstīt. Es ļoti iesaku pret to. Parsētāja spēks sniedz dažas ļoti spēcīgas priekšrocības. Viena joma, kuru es bieži izmantoju, ir skuvekļu skati. Ja izveidojat vietni, izmantojot ASP.NET 5 (galvenais jauninājums, kas nāk uz ASP.NET), varat izmantot virkņu interpolācijas funkciju lietotāju skatījumos. Piemēram, esošās ASP.NET veidnes izveido šo kodu _LoginPartial.cshtml fails:

Atjauninātā veidne izveido šo kodu:

Šeit ievērojiet vairāk nekā tikai izmaiņas interpolētajās virknēs. Jaunie atribūti nodrošina kodolīgāku sintaksi Html.ActionLink zvanu. Man ļoti patīk, kā Razor sintakse pieņēma savus dabiskos veidojumus, lai skatos izmantotu virkņu interpolāciju. Jūs vienkārši pievienojat simbolu "pie" (@) jebkurai C # izteiksmei jūsu HTML. Kad es to pieņēmu, mans skuvekļa skats ir samazinājies gandrīz par trešdaļu.

Internacionalizācija (un mazliet vēstures)

Viens no pēdējiem šīs funkcijas atjauninājumiem bija saistīts ar nelielām izmaiņām, kas virkņu interpolāciju padarīja daudz bagātāku scenārijos, kur kodam jāformatē virknes kultūrai vai valodai, kas atšķiras no esošās kultūras.

Visi līdz šim parādītie piemēri ir izveidojuši virknes. Sastādītājs formatēs virkni, izmantojot pašreizējo kultūru. Bet dolāra zīme ($) rakstzīme nav jāaprobežojas tikai ar virknes izveidošanu. Jūs varat piespiest kompilatoru izveidot citu tipu, FormattableString. Šis tips apzīmē salikta formāta virkni, kā arī formatējamos argumentus. Tas ļauj jums nokļūt cauruļvadā un labāk kontrolēt galīgo produkciju.

Jūs, iespējams, nevēlaties, lai virkņu interpolācija izmantotu pašreizējo kultūru, formatējot objektus (skaitļus, datumus un tā tālāk). Formāta darbībai varat norādīt noteiktu kultūru, izsaucot pārslodzi virkne. Formāts. Šis piemērs formatē virkni ar skaitli Vācijai, kur punkts (.) rakstzīme, ko ASV lieto, lai atdalītu visu skaitli no daļas, jāaizstāj ar komatu (,) raksturs:

Šī funkcija tika pievienota vēlāk izstrādes ciklā, atbildot uz daudziem izstrādātāju pieprasījumiem, kuriem jāizveido izeja citai kultūrai nekā pašreizējai atrašanās vietai. Šī funkcija bija īpaši svarīga izstrādātājiem, kas veido tīmekļa lietojumprogrammas.

Šīs funkcijas izstrādes laikā tās nebija vienīgās izmaiņas. Agrāk ieviešot, šī funkcija vienkārši aizstāja pozicionētos vietturus ar nosauktiem argumentiem jebkurā zvanā uz virkne. Formāts. Lai izgaismotu funkciju, bikšturi ( ) rakstzīmes tika aizbēgušas:

Bet šai lietošanai bija daudz ierobežojumu. Bikšturus nebija viegli izdrukāt formatētā virknē. Turklāt tas ir pieejams tikai zvana laikā virkne. Formāts ierobežoja daudzus scenārijus.

Vēlāk $ tika ieviesta sintakse, padarot formatēšanu daudz vieglāku, un tika atvērti citi scenāriji, tostarp skuvekļa specifiskā sintakse ASP.NET 5, kuru es minēju iepriekš. Pēdējās izmaiņas atbalstīja īpašo kultūras formatējumu.

Šīs izmaiņas varat redzēt GitHub pieejamo valodas dizaina piezīmju vēsturē. Dažas no iepriekšējām piezīmēm tika publicētas, kad Roslyn kods bija CodePlex. Šīs piezīmes laika gaitā var tikt migrētas uz GitHub.

Sākotnējie norādījumi par virkņu interpolāciju C #

Man ļoti patīk šī jaunā funkcija. Tas ir pilnībā aizstājis jebkuru idiomu, kur es to izmantoju un jebkurā kodā es rakstu, izmantojot jaunāko C # versiju. Vienkāršība koda kvalitāti ārkārtīgi uzlabo. Tomēr es neesmu veltījis laiku, lai atgrieztos pie esošā koda, lai to mainītu. Jaunā virkņu interpolācijas funkcija apkopo gandrīz tieši tos pašus konstrukcijas, kuras izmantojām iepriekšējās versijās. Lai gan es dodu priekšroku jaunajam kodam, ja vien nemainu funkciju, kurā tika izmantots vecs konstrukts, es to neatjauninu. Priekšrocības nav pietiekami lielas papildu satricinājumam. Ja es veicu būtiskus rutīnas atjauninājumus, es atjauninu kodu, lai izmantotu šo jauno funkciju. Es to nedaru kļūdu labojumiem vai jaunām funkcijām citur klasē.


Savienojošās stīgas ^

Tomēr dažiem uzdevumiem ir jāizmanto operatori. Piemēram, PowerShell nav concat funkcijas. Tā vietā jūs varat vienkārši apvienot divas vai vairākas virknes ar plus operatoru:

Varat arī paplašināt divas virknes divkāršās pēdiņās:

Šajā piemērā atstarpe garantē, ka abi vārdi nelīp kopā. Tomēr jūs varētu ievietot jebkuru citu atdalītāju.

Savienojošās virknes programmā PowerShell

Šī metode ir piemērota arī virkņu masīva elementu savienošanai:

PowerShell šeit automātiski ievieto atstarpi starp saistītajiem masīva elementiem.

Vēl viena virkņu savienošanas iespēja ir pievienoties operators. Iespējams, ka tā izmantošana ir nedaudz pretrunīga. Parasti operatoru ievietojat virknes priekšā, ja vien pēc apvienošanas nevēlaties atdalīt virknes ar atdalītāju:

Ja jums nepatīk piemērā redzamais rezultāts “Helloworld” un vēlaties starp diviem vārdiem pievienot atstarpi, jums jāzvana -pievienojies šādā veidā:


9.7.1. PATĪK

Izteiksme LIKE atgriežas kā patiess, ja virkne atbilst piegādātajam modeli. (Kā paredzēts, izteiksme NOT LIKE atgriež vērtību false, ja LIKE atgriež true, un otrādi. Līdzvērtīga izteiksme ir NĒ (virkne PATĪK modeli).)

Ja modeli nesatur procentuālās zīmes vai pasvītrojumus, tad modelis apzīmē tikai pašu virkni, tādā gadījumā LIKE darbojas tāpat kā operators vienāds. Pasvītrojums (_) modeli apzīmē (atbilst) jebkurai atsevišķai rakstzīmei procentu zīmi (%) atbilst jebkurai nulles vai vairāk rakstzīmju secībai.

LIKE modeļu saskaņošana vienmēr aptver visu virkni. Tādēļ, ja ir vēlams secību saskaņot jebkurā virknes vietā, modelim jāsākas un jābeidzas ar procentu zīmi.

Lai atbilstu burtiski pasvītras vai procentuālajai zīmei, nesakrītot ar citām rakstzīmēm, attiecīgais raksturs modeli jābūt pirms bēgšanas rakstura. Noklusējuma aizbēgšanas rakstzīme ir slīpsvītra, bet, izmantojot taustiņu, var izvēlēties citu BĒGT klauzula. Lai saskaņotu pašu evakuācijas rakstzīmi, uzrakstiet divas evakuācijas rakstzīmes.

Piezīme: Ja jums ir izslēgtas standarta_konformējošas virknes, visas divvirzienu slīpsvītras, kuras rakstāt burtiskās virknes konstantēs, būs divkāršotas. Plašāku informāciju skatiet 4.1.2.1. Sadaļā.

Arī rakstot ir iespējams atlasīt bez aizbēgšanas rakstzīmi Aizbēgt. Tas faktiski atspējo evakuācijas mehānismu, kas padara neiespējamu modeļa pasvītrojuma un procentuālo zīmju īpašās nozīmes izslēgšanu.

Atslēgas vārds MAN PATĪK var izmantot nevis PATĪK padarīt spēles nejutīgu pēc aktīvās lokalizācijas. Tas nav SQL standartā, bet ir PostgreSQL paplašinājums.

* atbilst ILIKE. Tur ir arī !

* operatori, kas attiecīgi pārstāv NEVIS LIKE un NAV LIKE. Visi šie operatori ir PostgreSQL specifiski.


Grep izmantošanas piemēri vairākām virknēm, rakstiem un vārdiem

Lai pārliecinātos, ka saprotat, kā izmantot grep, lai meklētu vairākas virknes, iesakām izveidot failu ar tekstu, kurā izmēģināsim pāris dažādus lietošanas gadījumus.

Mūsu gadījumā mēs nosaucām failu sample.txt un pievienoja dažas teksta rindkopas. Mēs saglabājām failu direktorijā pārbaude lietotājs, tas ir, iekš /home/test/sample.txt

Kā greifēt vairākus modeļus failā

Tālāk sniegtajos piemēros mēs izmantosim grep paplašinātā grep vietā. Neaizmirsti izmantojiet slīpsvītru pirms pīpes rakstzīmes.

Tā kā grep neatbalsta caurules simbolu kā maiņas operatoru, jums jāizmanto evakuācijas rakstzīme (atpakaļ slīpsvītra ), lai pastāstītu grep komandu izturēties pret cauruli atšķirīgi.

Piemēram, lai meklētu vārdus papildusun vērtībaiekš sample.txt failā izmantojiet šo komandu:

Izeja izceļ virkni, kuru vēlaties sagrābt.

Ja tas pats fails atrodas citā direktorijā, jums jāpārvietojas uz šo direktoriju vai jāizmanto pilns faila ceļš:

Lai meklētu vairāk nekā divus vārdus, turpiniet tos pievienot tādā pašā veidā.

Piemēram, lai meklētu trīs vārdus, pievienojiet vēlamo rakstzīmju virkni, kam seko atpakaļ slīpsvītra un pīpe:

Apskatīsim, kā šī grep komanda izskatās, izmantojot grep -E , egrep , un grep -e :

Mēs izmantosim grep citos piemēros, taču varat izmantot vēlamo sintaksi.

Failā meklējiet vairākas precīzas atbilstības

Ja vēlaties atrast precīzu atbilstību vairākiem modeļiem, nododiet -w karogs grep komandu.

Piemēram, zemāk esošajā izvadē parādīta atšķirība starp meklēšanu bez -w un ar to:

Kā redzat, rezultāti ir atšķirīgi. Pirmā komanda parāda visas rindas ar jūsu izmantotajām virknēm.

Otrā komanda parāda, kā sagrābt precīzas atbilstības vairākām virknēm. Izeja izdrukā tikai tās rindas, kurās ir precīzi vārdi.

Piezīme: Grep piedāvā daudzas funkcijas. Uzziniet, kā izmantot grep papildu lietošanas gadījumiem.

Lietojot Grep vairākām virknēm, ignorējiet reģistru

Lai nezaudētu kaut ko, meklējot vairākus modeļus, izmantojiet -i karogs, lai ignorētu burtu reģistru.

Piemēram, ar šo komandu mēs ignorēsim reģistru:

Rezultāts parāda, kā abas komandas atšķiras. Ja jūs iekļaujat -i atzīmēt un ignorēt burtu reģistru, vairāku spēļu rezultāts ietver visas spēles.

Tādā veidā jūs saņemat papildu rezultātus. Ja pievienojat arī -w atzīmējot šo komandu, varat vēl vairāk sašaurināt rezultātus:

Parādiet vairāku atbilstību skaitu failā

Pieņemsim, ka jūs pārrauga žurnālfailu un vēlaties uzzināt, vai palielinās brīdinājumu vai ziņojumu skaits. Jūs nevēlaties redzēt detalizētus rezultātus, kad atgriežas liels skaits spēļu.

Piemēram, lai parādītu vairāku spēļu skaitu bootstrap.log failu, ievadiet:

Izeja izdrukā atbilstību skaitu. Tādā veidā jūs varat ātri noteikt, vai palielinājās brīdinājumu un kļūdu skaits.

Grep par vairākiem modeļiem noteiktā faila tipā

Varat izmantot grep, lai meklētu vairākas virknes tikai noteikta veida failos. Ja vēlaties pārraudzīt žurnālfailus vienā direktorijā vai vēlaties meklēt visus teksta failus, faila nosaukuma vietā izmantojiet zvaigznīti un faila paplašinājumu.

Piemēram, lai visus meklētu brīdinājumus un kļūdas .log failus / var / log / direktorijā, ievadiet:

Lai labāk parādītu, kā šī opcija darbojas, mēs parādīsim tikai spēļu skaitu.

Rezultātā tiek parādīti visi faili, kas grep meklēja jūsu izmantotās virknes.

Piezīme: Ja saņemat a “Atļauja liegta” kā mēs to izdarījām iepriekš minētajā piemērā, jums ir nepieciešamas sudo privilēģijas. Lai iekļautu visus failus, izmantojiet sudo Ar grep komandu. Ievadiet sudo paroli, un grep meklēs visus failus.

Rekursīvi meklējiet vairākus paraugus failā

The grep komandu meklēšana tikai pašreizējā direktorijā, kad izmantojat zvaigznīti aizstājējzīmi.

Lai iekļautu visus apakšdirektorijus, meklējot vairākus modeļus, pievienojiet -R operatoram sagrābt:

Izeja atgriezīs rezultātus no visiem failiem grep komandā atrasta komanda / var / log / direktoriju un tā apakšdirektorijus.

Šajā apmācībā jūs uzzinājāt, kā izmantot grep, lai failā meklētu vairākus vārdus vai virkņu rakstus. Ceļvedis arī parādīja, kā izmantot paplašināto grep.

Šī raksta piemēri palīdz jums praktizēt, kā uzlabot savu grep meklēšanu.


Skatīties video: iOS App Development with Swift by Dan Armendariz