weekend - projektet: præsentation af sed regelmæssigt udtryk

, en af nøglerne til at bruge nationale samlingsregering sed med succes er at vide, hvordan man skal bruge sine regelmæssige udtryk.hvis du ser over sed manuskripter, uden at vide det almindelige udtryk, kan virkningen være temmelig foruroligende.- og' t bekymre — det ' er ikke så forvirrende, som det ser ud.denne weekend, tilbringe noget tid sammen med nationale samlingsregering sed ' s almindelige udtryk og få magten i deres tekst behandling. i den første lektion i den nationale samlingsregering sed vi kiggede på nogle af de grundlæggende syntaks, mest anvendte kommandoer og muligheder.men vi havde ' t ud over almindelige udtryk i detaljer, fordi jeg ønskede at bruge lidt mere tid på dette emne for at sikre, at vi giver regelmæssigt udtryk den tid, de fortjener.,, næsten en omfattende brug af sed vil kræve brug af regelmæssige udtryk for at matche mønstre for tekst.for eksempel, du ser måske gennem en fil, prøver at matche og erstatte (eller fjerne) http: //elementer, ip - adresser, telefonnumre eller variabler.måske du og' prøver at bruge sed til " skrabe " en rss foder til nyttige oplysninger.uanset hvad du og' prøver at gøre, du og' r støder ind i regelmæssige udtryk før eller senere, en advarsel, før vi begynder, regelmæssig udtryk i ' m, der her finder anvendelse på nationale samlingsregering sed i særdeleshed.de kan eller ikke kan overføre til andre anvendelser af sed &mdash. så hvis du ' prøver på en bsd, mac os x, eller med noget som busybox, din erfaring vil variere.de fleste af de udtryk, bør arbejde, naturligvis, men det ' er ikke 100% sikre.,, lad ' s gør, at to ord om forsigtighed.når en regelmæssig udtryk du ' er ikke helt sikker på, er en test, før du får varige ændringer til en fil.hvis du og' arbejder på filer på diskette (i modsætning til en strøm kommer fra produktionen af processen), løb den første anvendelse af udtryk, - n - (ro) og brug, p, at printe de resultater, som svarer til udtryk i stedet for at redigere filer.hvis du får resultater forventer du så, foretage ændringer.for at komme i gang, og' vil bruge disse til at illustrere nogle af mine eksempler.,, først udløber ved udgangen, en ting, som har brug for, er, at man kan sige, sed, som du ønsker at matche en snor i begyndelsen eller slutningen af linjen.hvis du og' er en vim fan, du allerede har en god idé om, hvad vi ' skal være med her, svarende til begyndelsen på en linje, anvendelse, «.passer til udgangen af en linje, anvendelse, $.her og' et eksempel:,,, sed - n ' /^ [a - z] /p ', filnavn,,,, det her siger, sed, svarer til en linje, der begynder med en lavere sag brev.sige, at du har en fil, der ser sådan ud:,,,,, sed sed 1sed,,,,, hvis du og' er nye regelmæssigt udtryk og /eller sed, det ser vel mere forvirrende, end det er, fordi udtrykket følger, og' /, og mdash; der er ' t del af udtrykket på alle.det, og', er der til at begynde med erklæring, som vil blive videregivet til sed uden at blive fortolket af skallen.det, fortæller sed, at søge efter et mønster. udtrykket vi ' genanvendelse (') [a - z]) siger " i begyndelsen af den linje, svarer til en enkelt karakter, der er et lille brev. ",, hvis du vil matcher noget i sidste ende, du og' 11 vil bruge $.bemærk, at det skal være, i slutningen af deres udtryk, så godt.bemærk, at nationale samlingsregering sed, vil gøre det muligt at bruge det i slutningen af en " subexpression ", hvor du og' er tilsvarende flere linjer og mdash; men det ', ikke nødvendigvis kommer til at arbejde med andre implementeringer af sed.,,, ikke mange, lad ' se matching af en eller flere personer eller ingen.hvis du vil have til at matche et eneste tilfælde, hvor en karakter eller snor, du kan bruge det bogstaveligt.for eksempel " f.eks. " vil matche (du gættede det), f.eks.: men det er ' t match, f.eks.ved hjælp af sed - n ' /eksempel /p ', svarer til en snor i en fil eller i produktionen, der har den snor i det.It would also match ,examples, or any longer string with that literal set of characters., , \tWhat if you want to match zero or more instances of a character, use the ,*, expression like so:, , \t,sed -n '/I*sed/p' ,filename,,, , \tThis would match "sed" or "Ised" but not "Ibed" or something else beginning with "I" but not followed by "sed"., , \tIf you want to match any character, use the ,., — the humble dot, like so:, , \t,sed -n '/s.d/p' ,filename,,, , \tThis would match "sad" or "sed" but not "Sad" or "Sed"., , \tWant to match multiple instances of any character? de kombinerer de,. *, tegn.dette svarer til nul eller flere bogstaver efterfulgt af ", ed. ",, du kan også svarer til et bestemt antal tilfælde ved hjælp af parenteser.du er nødt til at give mindst ét nummer, og du kan give en række eller et præcist antal.her og', er, hvordan det fungerer:,,, hvis du skriver, /en) (4)} /, du og' 11 passer præcis fire tilfælde af karakter " en " &mdash. hverken mere eller mindre.,, hvis du bruger, /en. (2,4)} /, du og' 11 svarer til mindst to, højst fire tilfælde.,, hvis du bruger, /en) (2)} /, siger ", svarer til mindst to og fortsæt.,,, enkelt, ikke?- ja, det ser virkelig rodet — for en stor del på grund af alle de delimiters, der er brug for.,, lister, lad ' er tale om matching af en liste.at ', når du vil have samme karakter i en liste.lad ' de siger, at du vil have til at matche en karakter fra " en " " m ", men ikke efter det.- måske vil du finde alle navne i en fil og løse dem ved første eller sidste navn.) ' sådan, du og' d gør det:,,, sed - n ' /^ [a-m] /p ', filnavn,,,, at ' s sed taler for " matche gennem m ved begyndelsen af linjen. " (-), fortæller sed, for at lede efter begyndelsen af linjen.), her du ' d svarer navne (eller med andre ord) begyndelsen af linjen, der begynder med de store bogstaver, men det begynder med en ikke - alpha - karakter eller lavere skrinlagde brev. for god foranstaltning, smid, form, i slutningen af kommandoen med et rør til at få navne i alfabetisk orden.,, hvis du bare vil matche få karakterer, men ikke en vifte?så du kunne bruge noget som dette:,,, sed - n ' /^ [aeiou] /p ', filnavn,,,, så du kan finde alle de navne, der begynder med en vokal.,, hvis du ønsker at sammenligne alle de navne, der er ' t, begynde med en vokal, kan du bruge den, "karakter igen fortælle sed ikke svarer til den rækkevidde, som så:,,, sed - n ' /^ - ^ aeiou] /p ', filnavn,,,,, at bemærke, at dette udtryk, ikke kun til bånd, der starter med store bogstaver, der er ' t i området, men også små bogstaver og tal.,, matchning af en html - lad ' se et sidste eksempel.hvad hvis jeg vil matche en html, der starter i begyndelsen af en linje, men er ' t a < p > tag?- og' d anvendelse:,,, sed - n ' /(< [^ p] [^ >] * > /p ' fil. html,,,,,, det vil matche alle brikker i begyndelsen af den linje, medmindre de er en " p " tag,.,, øv, der ', er virkelig kun en måde at blive dygtig til med regelmæssige udtryk, og at ' s praksis.tage en vis tid, denne weekend arbejde med sed ' s almindelige udtryk, og se om du kan ' t opbygge en muskel - hukommelse, så næste gang du skal opfylde ved enhver samling af personer i en fil eller strøm af tekst.,, regelmæssige udtryk kan få lidt risikabelt, men så ubehagelige som de måske ved begyndelsen, og' er værd at lære.nationale samlingsregering sed mestre vil bemærke, at jeg har ' ikke omfattet, alle mulige regelmæssigt udtryk her.at ', fordi jeg ønsker at levere en blid indførelse, snarere end at forsøge at koge havet i en forelæsning.hvis du og' er allerede bekendt med, ved hjælp af regelmæssige udtryk og /eller sed, dette kan synes at være ret ligetil.men jeg husker min første introduktion til regelmæssig udtryk, og jeg ville ønske, at andre tutorials (det er dem, jeg har lært fra) havde været lidt mindre køkkenvasken sort.,, vi næste uge ' vil afslutte sed - serien med et blik på nogle af de mere avancerede foranstaltninger med at kombinere sed hvad vi ' har allerede lært om sed ' grundlæggende kommandoer og regelmæssigt udtryk, og nogle yderligere elementer, som vi har ' t omfattet endnu.



Previous:
Next Page: