NaTerminal: Uchishandisa Zvakajairwa Kutaura II: Kutsiva

Mukati Me Nyaya yapfuura Ini ndakuudza padanho rekutanga mashandisiro anoita rimwe nerimwe reanonyanya kukosha mavara emataurirwo enguva. Nemataurirwo akajairwa izvi zvinokwanisika kuita tsvagiridzo yakaoma mumavara mafaira kana mukubuda kwemimwe mirairo. Muchikamu chino ini ndiri kuzotsanangudza mashandisiro esed raira yekutsvaga nekutsiva zvinyorwa mune imwe nzira ine simba kupfuura kungochinjisa rugwaro rweumwe.

Zvishoma zvishoma nezve iyo grep yekuraira

Ndisati ndatanga kutaura nezve sed, ini ndoda kutaura zvishoma nezve grep raira kuti ndipedze zvakatsanangurwa muchinyorwa chakapfuura zvishoma. Zvese zvandichataura zvichave zvine chekuita neichi futi. Gare gare tichaona hukama pakati peizvi nekutsvaga.

Kubatanidza mataurirwo enguva dzose

Mazhinji emhando dzakasarudzika dzandataura nezvadzo muchinyorwa chakapfuura dzinogona kusanganiswa, kwete chete nevamwe vatambi, asi nemataurirwo akajairwa. Nzira yekuita izvi ndeyekushandisa mabhureki kuti vagadzire subexpression. Ngatione muenzaniso weizvi. Ngatitangei kurodha pasi chinyorwa chatinogona kushandisa kuyedza. Icho chinyorwa chemitsara. Kune izvo isu tichazoshandisa unotevera kuraira:

curl http://artigoo.com/lista-de-frases-comparativas-comicas 2>/dev/null | sed -n 's/.*\(.*\.\)<\/p>/\1/gp' > frases

 Izvi zvinokusiya iwe mudhairekitori kwaunotanga faira rakanzi «zvirevo». Iwe unogona kuvhura iyo kuti utarise uye uve nekuseka zvishoma. 🙂

Zvino ngatitii tinoda kutsvaga mitsara ine mazwi matanhatu chaiwo. Iko kuoma kuri mukuumba chirevo chenguva dzose chinoenderana neshoko rega rega. Izwi ndere kutevedzana kwemavara, angave ari makuru kana madiki, izvo zvingave zvakaita senge '[a-zA-Z]+', asi iwe zvakare unofanirwa kudoma kuti mavara aya anofanirwa kupatsanurwa nemamwe mavara kwete mavara, ndiko kuti, chingave chinhu chakadai '[a-zA-Z]+[^a-zA-Z]+'. Ngatirangarirei: iyo "^" semunhu wekutanga mukati memabhureki anoratidza kuti tinoda kuenderana nemavara asiri mumatanho uye "+" inoratidza 1 kana anopfuura mavara.

Isu tatova neyakajairwa kutaura inogona kuenderana neshoko. Kuti uibatanidze ne6, ichafanirwa kudzokororwa katanhatu. Kune izvo isu takashandisa makiyi, asi hazvina basa kuisa '[a-zA-Z]+[^a-zA-Z]+{6}', nekuti ivo vatanhatu vaizodzokorora chikamu chekupedzisira chemataurirwo enguva dzose uye chatiri kuda kudzokorora zvese, saka izvo zvatinofanira kuisa ndeizvi: '([a-zA-Z]+[^a-zA-Z]+){6}'. Nemabhureki isu tinogadzira chidimbu uye nezvisimbi tinozvidzokorora katanhatu. Iye zvino iwe unongoda kuwedzera "^" kumberi uye "$" kumashure kuti uenzane netambo yese. Iwo murairo unotevera:

grep -E '^([a-zA-Z]+[^a-zA-Z]+){6}$' frases

Uye mhedzisiro ndizvo chaizvo zvataida:

Inoimbwa kupfuura Macarena. Iwe wapedza kupfuura Luis Aguilé. Une tsika shoma pane dombo. Iwe unoziva mitauro yakawanda kupfuura Cañita Brava. Ane makwinya akawanda kupfuura Tutan Khamón. Unoziva zvishoma pane Rambo nezve kuchengetwa kwevana.

Cherekedza kuti isu tinoisa iyo -E paramende nekuti isu tinoda kushandisa akawedzeredzwa mataurirwo enguva dzose kuti tiite "+" Kana isu tikashandisa izvo zvekutanga, isu taizofanira kutiza mabharanzi uye zvidhina.

Kudzosera kumashure kana kumashure

Kana iwe uine spell checker yakaiswa, iwe unenge uine runyorwa rwemazwi mu /usr/share/dict/words. Kana zvisiri, unogona kuiisa mune arch ne:

sudo pacman -S words

Kana mune debian ne:

sudo aptitude install dictionaries-common

Kana iwe uchida iwe unogona kutarisa iyo faira kuti uone kuti ndeapi mazwi ainayo. Chaizvoizvo chinongedzo kune iro faira faira remutauro mune yako distro. Unogona kuve nemafaira akati wandei eizwi akaiswa panguva imwe chete.

Tiri kuzoshandisa iyo faira. Zvinoitika kuti isu tinoda kwazvo kuziva ese manomwe mavara palindromes kunze uko. Kune avo vasingazive: A palindrome ishoko re capicúa, kureva kuti, rinogona kuverengwa kubva kuruboshwe kuenda kurudyi uye kubva kurudyi kuenda kuruboshwe. Ngatiedzei unotevera kuraira:

grep '^\(.\)\(.\)\(.\).\3\2\1$' /usr/share/dict/words

Inotaridza kunge isinganzwisisike, handiti? Kana tikazviedza, mhedzisiro yacho inoenderana nemutauro wedistro yako uye mazwi ari mune ako runyorwa, asi kwandiri, nemutauro wechiSpanish, mhedzisiro ndeiyi:

aniline aniline rolling

Ngatione mashandisiro anoita chirevo ichi chenguva dzose.

Kunze kweiyo "^" uye "$", izvo zvatinoziva kare kuti ndezvei, chinhu chekutanga chatinoona kuruboshwe mapoka matatu emapoinzi akapoteredzwa mumabhureki. Usasanganisike nemabhawa ari pamberi pebaseji rega rega. Ivo vari kuzotiza vanavazukuru nekuti isu tiri kushandisa zvakakosha zvirevo, asi ivo havana imwe chirevo. Chinhu chakakosha ndechekuti isu tiri kukumbira chero vatatu vatambi vane madonhwe, asi rimwe nerimwe rawo mavara akapoteredzwa mumabhureki. Uku kuchengetedza mavara anoenderana iwo mapoinzi kuti vagone kuratidzwa zvakare kubva pane zvakajairwa kutaura. Uku kumwe kushandiswa kwevaberekiheses izvo zvinouya zvinobatsira gare gare pakugadzira zvinotsiva.

Apa ndipo panouya nhamba nhatu pazasi nekusara pamberi padzo. Mune ino kesi, iyo bar yakakosha. Iyo inoshandiswa kuratidza kuti iyo nhamba pazasi ndeye backreferensi uye irikureva kune imwe yeakamberi mabara. Semuenzaniso: \ 1 inoreva mabara ekutanga, \ 2 kune yechipiri, zvichingodaro.

Ndokunge, nekutaura kwatagara tichiisa, zvatiri kutsvaga ese mazwi anotanga nechero mavara mana uyezve uine tsamba yakaenzana neyechitatu, imwe yakafanana neyechipiri uye imwe yakafanana neiyo chekutanga. Mhedzisiro yacho iwo manomwe-mavara palindromes ari mune rondedzero yemazwi. Sezvataida isu.

Dai isu taive tichishandisa yakawandisa mataurirwo, isu hatifanirwe kupukunyuka mabhureki, asi neakawedzerwa akajairwa mataurirwo mareferenzi haashande mumapurogiramu ese nekuti haana kuenzaniswa. Nekudaro, ne grep vanoshanda, saka inogona kunge iri imwe nzira yekuita zvakafanana. Unogona kuzviedza kana uchida.

Shanduko dzekutsiva: iyo sed kuraira

Pamusoro pekutsvaga, kumwe kwekushandisa kwakanakisa kwekutaura kwakajairwa kutsiva zvinyorwa zvakaoma. Kuti uite izvi, imwe nzira yekuzviita iri neiyo sed command. Simba remutemo wed rinopfuura kupfuura kutsiva zvinyorwa, asi pano ndiri kuzorishandisa izvo. Iyo syntax yandiri kuzoshandisa nemurairo uyu ndeinotevera:

sed [-r] 's/REGEX/REPL/g' FICHERO

Kana zvakare:

COMANDO | sed [-r] 's/REGEX/REPL/g'

Iko REGEX ichave iri yekutsvaga yekutaura uye REPL iyo yekutsiva imwe. Ramba uchifunga kuti uyu murairo haubvise chero chinhu mufaira icho chatinoratidza, asi zvazvinoita kutiratidza mhedzisiro yekutsiva muteminal, saka usatya nemirairo yandichaisa inotevera. Hapana chimwe chazvo chiri kuzoshandura chero mafaera pane yako system.

Ngatitangei nemuenzaniso wakapusa. Isu tese tine akasiyana mafaira ekumisikidza mu / etc dhairekitori iyo inowanzo kuve nemazita anotanga na "#". Ngatitii tinoda kuona rimwe remafaira aya pasina zvataurwa. Semuenzaniso, ini ndiri kuzozviita neiyo fstab. Unogona kuedza neiya yaunoda.

sed 's/#.*//g' /etc/fstab

Ini handisi kuzoisa pano mhedzisiro yekuraira nekuti zvinoenderana nezvauinazvo mu fstab yako, asi kana ukafananidza zvakabuditswa murairo nezviri mufaira uchaona kuti zvese zvakataurwa zvanyangarika.

Mune uyu murairo kutaura kwekutsvaga ndi «#.*", Ndiyo" # "inoteverwa nechero nhamba yevatambi, ndokuti mhinduro. Uye chirevo chekutsiva, kana iwe ukatarisa mabhawa maviri akateedzana, iwe uchaona kuti hapana, saka zvazviri kuita kutsiva makomendi acho pasina, ndiko kuti, kudzima iwo. Zvakareruka hazvigoneke.

Iye zvino tava kuzoita zvakapesana. Ngatiti izvo zvatiri kuda kutaura mitsara yese yefaira. Ngatiedzei seizvi:

sed 's/^/# /g' /etc/fstab

Iwe unozoona kuti, mukuburitsa kwemirairo, mitsara yese inotanga neiyo hashi mucherechedzo uye isina chinhu nzvimbo. Izvo zvatakaita kutsiva kutanga kwetambo ne «# «. Uyu zvakare muenzaniso wakapusa apo chinyorwa chinotsiviwa chinogara chakangofanana, asi ikozvino tave kuzozvinetsa zvishoma.

Nyasha dzekutsiva ndedzekuti mune yekutsiva kutaura iwe unogona kushandisa zvidzoreso senge zvandakakuudza kare. Ngatidzokerei kumutsara faira iyo yatakatora pasi pakutanga kwechinyorwa. Tichaisa mumabharakure mabhii makuru aripo, asi tichazviita nemurairo:

sed 's/\([A-Z]\)/(\1)/g' frases

Izvo isu zvatinazvo pano ndezvekudzosera kumashure mune yekutsiva kutaura iyo inoreva kumabhureki mune yekutsvaga kutaura. Iwo mabhureki mune ekutsiva kutaura ari akajairwa mabhureki. Mukutaura kwekutsiva ivo havana chavanoreva, vanoiswa sezvazviri. Mhedzisiro yacho ndeyekuti ese makuru mavara anotsiviwa neiyo imwechete tsamba, chero zvazvingava, iine mabara mabara akarikomberedza.

Kune imwe hunhu iyo inogona zvakare kushandiswa mune yekutsiva kutaura, iri "&" uye inotsiviwa nezvose zvinyorwa zvinoenderana neshoko rekutsvaga. Muenzaniso weizvi ungave uri kuisa ese mitsara mufaira mune makotesheni. Izvi zvinogona kuwanikwa nemurairo uyu:

sed 's/.*/"&"/g' frases

Iko kushanda kweiyi murairo kwakafanana chaizvo neiyo yapfuura, chete ikozvino izvo isu zvatinotsiva ndiyo tambo yese neiyo imwechete tambo ine makotesheni akaitenderedza. Sezvo isu tiri kushandisa "&", hazvina basa kuisa mabhureki.

Mimwe mirairo inobatsira ine mataurirwo enguva dzose

Heano mashoma mirairo yandinowana inobatsira kana kuziva uye iyo inoshandisa mataurirwo enguva dzose. Nemirairo iyi kushandiswa kwemataurirwo enguva dzose kuri nani kwazvo kupfuura nemiyenzaniso yandakupa kusvika zvino, asi zvaiita kunge zvakakosha kwandiri kutsanangura chimwe chinhu nezvekuti mataurirwo enguva dzose anoshanda sei kuti unzwisise.

  • Ratidza zvikamu zvepeji yemurume:

man bash | grep '^[A-Z][A-Z ]*$'

Ehe, iwe unogona kushandura iyo bash raira kune chero chaunoda. Uyezve kubva kumurume, unogona kuenda wakananga kuchikamu chaunofarira iwe, chokwadika, chirevo chenguva dzose. Dhinda «/» kutanga kutsvaga uye kunyora «^ALIASES$»Kuti uende kune chikamu che ALIASES, semuenzaniso. Ini ndinofunga uku ndiko kushandisa kwekutanga kwandakatanga kuita kwekutaura kwakajairika makore mashoma apfuura. Kufamba nemamwe mapeji ebhuku rinenge risingakwanisike pasina hunyengeri hwakadai.

  • Ratidza mazita evose vashandisi vemuchina kusanganisira akakosha iwo:

sed 's/\([^:]*\).*/\1/' /etc/passwd

  • Ratidza mazita evashandisi, asi chete avo vane Shell:

grep -vE '(/false|/nologin)$' /etc/passwd | sed 's/\([^:]*\).*/\1/g'

Izvo zvinogona kunyatso kuitwa nekutaura kamwe chete, asi nzira yekuzviita inopfuura izvo zvandakakuudza muzvinyorwa izvi, saka ndakazviita nekubatanidza mirairo miviri.

  • Isa comma pamberi pemadhigiri matatu ekupedzisira enhamba dzese dziri mufaira rehuwandu:

sed 's/\(^\|[^0-9.]\)\([0-9]\+\)\([0-9]\{3\}\)/\1\2,\3/g' numbers

Iyo inoshanda chete nenhamba dzinosvika pamatanhatu, asi inogona kudaidzwa kanopfuura kamwechete kuti iparadzanise mune mamwe mapoka emadhijiti matatu.

  •  Bvisa ese maemail kero kubva kufaira:

grep -E '\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\>' FICHERO

  • Paradzanisa zuva, mwedzi uye gore remazuva ese anowanikwa mufaira:

sed -r 's/([0-9]{2})[/-]([0-9]{2})[/-]([0-9]{4})/Día: \1, Mes: \2, Año: \3/g' FICHERO

  • Tsvaga yedu yemunharaunda IP:

/sbin/ifconfig | grep 'inet .*broadcast' | sed -r 's/[^0-9]*(([0-9]+\.){3}[0-9]+).*/\1/g'

Izvi zvinogona zvakare kuitwa pamwe chete sed command, asi ini zvirinani kuzvipatsanura kuita grep uye sed kuti zvive nyore.

Dzimwe kero dzinobatsira

Heano mamwe kero angave anobatsira ane hukama nemataurirwo enguva dzose:

  • Yakajairwa expression raibhurari: Iri raibhurari yekutaura nguva dzose maunogona kutsvaga mataurirwo enguva dzose ane chekuita nemusoro wenyaya waunofarira. Kutsvaga mawebhu kero, ID kana chero.
  • RegExr: Wepamhepo wenguva dzose expression checker. Iyo inokutendera iwe kuisa iwo mavara uye woisa chirevo chenguva dzose kwairi kungave kutsvaga kana kutsiva. Inopa ruzivo nezve chirevo chinowanzoitika uye une sarudzo shoma dzekuchinja maitiro.
  • Yakajairwa Kutaurisa Tester: Iyo addon ye firefox iyo inokutendera iwe kutarisa mataurirwo enguva dzose kubva kubhurawuza.

Mhedziso

Izvozvi ndizvozvo chete. Kugara uchitaura kwakaomarara asi kunobatsira. Zvinotora nguva kuzvidzidza, asi kana iwe wakaita seni, kutamba navo zvinoita sekunakidza uye, zvishoma nezvishoma unozogona ivo. Inyika yose. Pangave nezvakawanda zvekutaura parizvino, nezve husimbe maquantifiers, PERL -style regex, multiline, nezvimwe. Uye ipapo chirongwa chega chega chine hunhu hwacho uye zvakasiyana zvacho, saka rairo rakanakisa randinogona kukupa iwe kugara uchitarisa zvinyorwa zvechirongwa icho chauri kushandisa pese paunofanirwa kunyora chirevo chenguva dzose muchirongwa chitsva.

Hei! … HEY! … MUKA! … ZVII ZVESE MURI KUTI MURI KUVATA? 🙂

Fuentes

Mimwe yemafungiro uye mienzaniso yekutaura kwese muchinyorwa chino zvandatora kubva pano:


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   ichit akadaro

    Masterly !!!

    1.    anonet akadaro

      Hazvina kunyanya kuipa, asi ndinokutendai zvikuru. Ndinovimba vanhu vanozvifarira. 🙂

      1.    Oscar akadaro

        Ndinoifarira ha!

        1.    anonet akadaro

          Ipapo ndinofanira kunge ndakaita chimwe chinhu nemazvo. LOL!! 🙂

          Ndatenda zvikuru nemhinduro yako.

          1.    Blaire pascal akadaro

            Fuck ramba uchinyora murume, zvichengetedze.

          2.    anonet akadaro

            @Blaire Pascal: Mhinduro sedzako dzinozvikurudzira. Ndatenda zvikuru !!

      2.    Guta akadaro

        Ndazvifarirawo ... ndatenda 🙂

        1.    anonet akadaro

          Ndatenda nekutaura. Ndinovimba kunyora zvimwe zvishoma. 🙂

  2.   mariano akadaro

    Zvako zvinyorwa zvinonakidza, iwe unodzidza zvakawanda, pane kudaro, iwe unodzidza kuita mabasa nenzira inoyevedza uye inoshanda.

    Wakambofunga nezve kuunganidza yako ese Shell script zvinyorwa? Kurongwa mu pdf kwaizoita bhuku rakakura.

    Mufaro uye ndinokutendai zvikuru!

    1.    anonet akadaro

      Ndotenda zvikuru!! Haisi yakaipa pfungwa. Panguva ino pane maviri chete, asi ini ndichafunga nezvazvo gare gare. 🙂

  3.   Kiyov akadaro

    chinyorwa chakanaka kwazvo, 5+.

    1.    anonet akadaro

      Ndatenda. Ndiri kufara kuti unozvifarira. 🙂

  4.   Sebastian akadaro

    Zvakanaka! Ini ndoda kushandura chirevo chinotevera uye ini handizive kuzviita sei:
    192.168.0.138/Server na 192.168.0.111/data
    Dambudziko riri muchiratidzo che "/".
    Ndiri kushandisa rairo:
    tsvaga. -zita "* .txt" -exec sed -i 's / TEXT1 / TEXT2 / g' {} \;
    Chii chinoshandiswa kuita urwu rudzi rwebasa remissively, asi ini handikwanise ...
    Pane chero munhu anoziva kuti ndinofanira kuzviita sei?
    Kumbundirana!
    Seba

    1.    anonet akadaro

      Izvo iwe zvaunofanirwa kuita kutiza hunhu seizvi:

      tsvaga. -zita "* .txt" -exec sed -i 's / \ / Server / \ / data / g' {} \;

      Iwe unogona zvakare kushandisa imwe separator mune sed. Haifanirwe kunge iri bhawa. Sed inobvumira chero hunhu kushandiswa. Semuenzaniso, izvi zvingave zvakajeka:

      tsvaga. -name "* .txt" -exec sed -i 's | / Server | / data | g' {} \;

      Uye kana iwe uchizoteedzera nekuteedzera iyo mirairo kubva pane ino komendi, chenjera neakatorwa makotesheni, iro izwi remazwi rinovashandura ivo ve typographic. 🙂

      Thanks.

  5.   Sebastian akadaro

    Zvakanakisa !!!!
    Ndanga ndichitsvaga mhinduro iyi kwenguva yakareba.
    Pano ini ndinosiya iwo wakazara kuraira kwandashandisa

    tsvaga. -name "*. txt" -exec sed -i 's | 192 \ .168 \ .0 \ .238 \ / Server | 192 \ .168 \ .0 \ .111 \ / data | g' {} \;

    Kubatsira kwemurairo uyu ndekwekuti inoshandura mafaera ese e .txt (kana kuwedzerwa kwaunoda) uchidzokororazve ... Unofanirwa kungwarira!
    Asi inobatsira kwazvo !!!

    Zvakanaka, ndatenda nezvese uye chiuru makorokoto kuboka rese.
    Ndaigara ndichiaverenga kubva mutsamba!
    Kumbundirana
    Seba