Cuir ordú amháin in ionad téacs taobh istigh de chomhaid: perl

Ar ócáidí áirithe ba mhaith linn téacs a chur in áit comhaid, mar shampla, athrú i Doiciméad.txt gach rud a deir "mo theaghlach" in ionad "dúinn." Chun é seo a bhaint amach is féidir linn an t-eagarthóir téacs is fearr linn a úsáid (Kate, Gedit, SublimeText, srl) ach is maith i gcónaí eolas a fháil ar leaganacha, bealaí eile chun an toradh céanna a bhaint amach 🙂

Tarlaíonn sé sin le nathanna rialta is féidir leat é seo a bhaint amach, tá an t-ordú sed iontach iontach, tá leaganacha agus roghanna gan deireadh aige ach ... dóibh siúd nach dteastaíonn uathu ach téacs a athsholáthar ón ar an mbealach is casta is féidirdóibh siúd is ea go dtugann mé an leagan i bhfad níos simplí seo:

Ag leanúint an tsampla, tá an comhad againn Doiciméad.txt suite i $ HOME / Document.txt leis an téacs seo a leanas:

(...) mo chlann Tá sé cosúil le gach ceann acu, cosúil leatsa nó le do chomharsa. Go deimhin mo chlann Déanaimid iarracht a bheith inár ndaoine freagracha agus i súile na sochaí, ceart go polaitiúil agus go sóisialta. I mo theach féin, áfach, tá caora dhubh, agus sin mo ról LOL!. Bhí mé i gcónaí ar an duine nach bhfuil eagla air a bharúil a rá (cé nach cosúil go bhfuil sé ceart i súile na sochaí), cé i ndáiríre tá mo theaghlach bréan den salachar sochaí an lae inniu.

Leis an ordú seo a leanas athróidh tú «mo chlann"le"linn":

perl -pi -e "s[mi familia][nosotros]g" $HOME/Documento.txt

Tá sé chomh simplí 🙂

Mar sin bheadh ​​an téacs:

(...) linn Tá sé cosúil le gach ceann acu, cosúil leatsa nó le do chomharsa. Go deimhin linn Déanaimid iarracht a bheith inár ndaoine freagracha agus i súile na sochaí, ceart go polaitiúil agus go sóisialta. I mo theach féin, áfach, tá caora dhubh, agus sin mo ról LOL!. Bhí mé i gcónaí ar an duine nach bhfuil eagla air a bharúil a rá (cé nach cosúil go bhfuil sé ceart i súile na sochaí), cé i ndáiríre tá mo theaghlach bréan den salachar sochaí an lae inniu.

Is í an chomhréir:

perl -pi -e "s[lo-que-quiero-cambiar][lo-nuevo-a-poner]g" archivo-en-el-cual-reemplazar

B’fhéidir go bhfuil an chuma air go bhfuil an t-ordú rud beag casta, déanaimis é a bhriseadh síos beagán agus é a mhíniú rud beag níos simplí 😉

  • Perl : Cad a úsáidfimid, perl
  • -pi : Pí, conas π (luach thart ar 3.14)
  • -e : Samhlaíonn an E é le haghaidh «e a fhorghníomhú» ^ - ^
  • Ansin i Sleachta » osclaímid le s agus dúnann muid le g: "sg" … Samhlaigh an S for Start agus an G do Game Over 😀
  • Cas idir an sg ní mór dúinn dhá shraith lúibíní a chur: [] y [], mar sin: "S [] [] g"
  • Taobh istigh de na chéad lúibíní mar a dúirt mé thuas, rachaidh an téacs a theastaíonn uainn ceann nua a bhaint agus ceann nua a chur ina ionad, agus sa dara sraith de lúibíní rachaidh an téacs nua le cur, ag leanúint an tsampla: "S [mo theaghlach] [muid] g"

Simplí nach ea?

Tá an míniú i ndáiríre i bhfad níos fairsinge ná an méid atá riachtanach don ordú, tá sé simplí go leor a thuiscint 🙂

Tá i bhfad níos mó i gceist le Perl ná bealach chun téacs a athsholáthar, is teanga iomlán í 😉

Más mian leat níos mó a fhoghlaim faoi, suiteáil an pacáiste perl-doc agus féach ar whooodo an méid a cheadaíonn sé, níl ann ach cruinne difriúil.

Dála an scéil agus le dúnadh, ag glacadh leis go dteastaíonn uait na comhaid .txt go léir atá agat i $ HOME / Documents / a fháil agus i ngach ceann acu “linn” a chur in ionad “mo theaghlach”, is féidir leat a bheith in éineacht le + perl chun é seo a bhaint amach:

find $HOME/Documentos/ -name *.txt -exec perl -p -i -e "s[mi familia][nosotros]g" {} \;

Nó cárta fiáin a úsáid:

perl -p -i -e "s[mi familia][nosotros]g" $HOME/Documentos/*.txt

Is í an fhadhb leis an dara leagan seo, ná nach nglacfaidh sé ionad i gcomhaid atá i bhfofhillteáin

Ar aon nós, tá súil agam go raibh sé suimiúil duit. Maidir liom féin bhí sé an-úsáideach, is féidir liom téacs a athsholáthar go díreach ón teirminéal cheana féin ... go hiontach! 😀


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

21 trácht, fág mise

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte le *

*

*

  1. Freagrach as na sonraí: Miguel Ángel Gatón
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.

  1.   Boom a dúirt

    Bhuel, sílim go bhfuil a fhios ag a lán againn anseo an t-ordú sed, a fhreastalaíonn ar an gcuspóir céanna, a dhéanann sé i bhfad níos fearr agus atá níos éasca le húsáid ...

    1.    KZKG ^ Gaara a dúirt

      Go raibh maith agat as do thrácht,
      Níl ach dhá shonra ann, cén fáth a ndeir tú go ndéanann sed níos fearr é? An bhfuil sé níos éasca i ndáiríre a úsáid leis an oiread sin carachtair ‘aisteach’?

  2.   Federico A. Valdes Toujague a dúirt

    Beannachtaí do chách !!!. Tá an t-ordú in úsáid agam tart, agus tá an modh a thuairiscítear anseo le perl níos simplí. Go raibh maith agat KZKG ^ Gaara !!!.

    1.    KZKG ^ Gaara a dúirt

      Go raibh maith agat as an trácht 🙂
      Bhuel, ar a laghad feictear dom go bhfuil sé seo níos simplí ná nathanna rialta ... gur féidir rud éigin casta a thuiscint agus a fhoghlaim leis an oiread sin carachtar ‘aisteach’.

      1.    Giskard a dúirt

        Tá “sean” adage amuigh ansin: “Bhí fadhb agam, shocraigh mé Léirithe Rialta a úsáid ... anois tá DHÁ fhadhb agam” 😉

        1.    KZKG ^ Gaara a dúirt

          HAHAHAHAHAHAHA !!!
          Féadann nathanna rialta ár saol a shábháil ag pointe áirithe ... sea, tógann sé tamall fada foghlaim conas iad a úsáid agus gan bás a fháil.

          Dá mbeadh an t-ordú seo ar eolas agam blianta ó shin, Dia !! cé chomh simplí a bheadh ​​mo shaol 😀

          1.    Giskard a dúirt

            Glan! Láimhseáiltear go maith go bhfuil siad an-chumhachtach 🙂 Ní dhéanfaidh aon ní níos fearr téacs a ionramháil. Ach uaireanta, mar a déarfá le Perl sa chás seo, ní gá duit dul chomh fada sin más leor duine eile ina áit.
            Ba mhaith liom Python a úsáid ar aon nós :)

    2.    dhúntóir a dúirt

      Ach le tart feicim go bhfuil sé níos simplí fós ... an bhfuil rud éigin mícheart á dhéanamh agam?

      sed -i "if / what-I-want-to-change / new-to-put /" file-in-which-to-replace

      1.    KZKG ^ Gaara a dúirt

        heh heh ... agus más mian liom "http://my.blog.com/content/" a chur in ionad "http://my.blog.com/uploads/files/" 😀 ... cheana féin caithfidh tú \ le spásanna agus eile a chur , agus bíonn sé casta nó nach bhfuil?

        1.    dhúntóir a dúirt

          Níl sé éigeantach é a úsáid / mar dheighilteoir. Féach le +

          sed -i «s + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» comhad

          1.    KZKG ^ Gaara a dúirt

            O_O… WTF!
            Tá cruinne iomlán roghanna oscailte agat dom anois .. O_O

          2.    Giskard a dúirt

            Is breá liom na poist seo ina bhfoghlaimímid go léir rud 🙂
            Ní raibh a fhios agam é sin ach an oiread.

  3.   RAW-Bunúsach a dúirt

    Is fearr liom a úsáid go díreach vi ..

    Chomh simplí le:
    :% s / linn / mo theaghlach / g

    % -> doiciméad iomlán
    s -> cuardach
    g -> gach tarlú

    Beannachtaí ..

    1.    KZKG ^ Gaara a dúirt

      Go raibh maith agat!
      Ní raibh a fhios agam conas é a dhéanamh le vi

  4.   st0rmt4il a dúirt

    Curtha leis na Favorites!

    Go raibh maith agat!

  5.   stoirm n3 a dúirt
  6.   DuranG a dúirt

    Iontráil iontach! I gcás go bhfuil suim ag éinne, mar an gcéanna leis an ordú Linux Linux: http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html

    1.    Amhras a dúirt

      Agus cad a tharlóidh má tá luachana sa chomhad a theastaíonn uaim a athsholáthar?
      Sampla cuir an téacs in ionad an méid a deir an téacs: »1 ″:» 2 ″
      conas a bheadh ​​an t-ordú?

  7.   Percy salgado a dúirt

    Dia duit

    Theastaigh uaim sreangán a raibh @ sa lár aige a athsholáthar agus gan ach an téacs a athrú go dtí an roimh.

    téacs le hathrú: Viva el Perú
    téacs nua: Viva mi patria @percysalgado
    Taispeántar: Is fada mo bhaile dúchais

    Go raibh maith agat as do chabhair

  8.   Anonymous a dúirt

    "\" Caithfidh tú an slais a úsáid roimh na carachtair a bhfuil úsáid dhúbailte acu @, #, ionas go ndéanfar iad a léirmhíniú mar théacs.

  9.   GABA a dúirt

    Agus conas is féidir liom é a dhéanamh i bhfuinneoga ????