Merkkien käsittely

ediävaipythonia

Hei,
Kyseessä linux.
Käytössä shell ja python, mieluiten shell.

Data on:
abbd
dbdb
adbd
babb

Miten voin toteuttaa tehokkaasti:
1. jokaiselta riviltä vain 2:detta ja 3:metta merkkiä tulee käsitellä
2. jos käsiteltävä merkki on b tulee se korvata merkillä _

Tällöin esimerkin datasta pitäsi saada:
a__d
d_db
ad_d
ba_b

Miten tämä,kiltit gurut kertokaa.

jos teen esim:
sed s/b/_/g
tämä ei toimi palauttaa:
a__d
d_d_
ad_d
_a__


Kiitä teitä

5

175

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • dfgdgdg

      Tämmönen pyyttonilla. Tehtävänanto kuulostaa hieman keinotekoiselta mutta tämän pitäis toimia jos tarivitsee sattumoisin monimutkaisempiakin merkkimuunoksia tehdä.

      Katsotaan menikö pahasti rikki kun heitin html escape työkalun läpi

      import string

      if __name__ == '__main__':
          # kaannostaulu
          tt = string.maketrans("b", "_")

          # data voisi olla tiedostokin
          data = ["abbd",
                  "dbdb",
                  "adbd",
                  "babb"]

          for row in data:
              print row[0]   string.translate(row[1:3], tt)   row[3:]


      Tuottaa:
      a__d
      a_db
      ad_d
      ba_b

      • sdsdff

        Siis tuottaa (oli alkujaan typo mutta unohin korjata tästä)
        a__d
        d_db
        ad_d
        ba_b


      • sdfsdfdss
        sdsdff kirjoitti:

        Siis tuottaa (oli alkujaan typo mutta unohin korjata tästä)
        a__d
        d_db
        ad_d
        ba_b

        Laitetaan nyt vielä selitys maketranssista. Se siis tekee tuollaisen käännöstaulukon annetuista parametreistä ja kääntää ne kaikki kerralla.

        Esim. jos haluaisit kääntää a->b, b->c, d->e niin se onnistuisi string.maketrans("abc", "bce")


      • sdfgfg
        sdfsdfdss kirjoitti:

        Laitetaan nyt vielä selitys maketranssista. Se siis tekee tuollaisen käännöstaulukon annetuista parametreistä ja kääntää ne kaikki kerralla.

        Esim. jos haluaisit kääntää a->b, b->c, d->e niin se onnistuisi string.maketrans("abc", "bce")

        Tietty jos ei ikinä eikä missään tilanteessa ole tarvista muille kuin yhden merkin käännöksille niin sitten ihan normaali replace käy myös


      • se kysysja
        sdfgfg kirjoitti:

        Tietty jos ei ikinä eikä missään tilanteessa ole tarvista muille kuin yhden merkin käännöksille niin sitten ihan normaali replace käy myös

        Tämä on tosi siisti.

        Kiitos.

        Sitten mitä tulee keinotekoiseen, myös aspartaami on.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Näin Enter-napilla tehdään miljardi euroa - Helsingissä

      "Ei se nyt niin kovin ihmeelliseltä näytä. Tavallinen nappi, musta muovinpala, joka kököttää parikymppiä maksavan mustan
      Maailman menoa
      26
      19255
    2. Minulla ei ole ketään muita

      Enkä halua ketään muita kuin sinut.
      Ikävä
      69
      6215
    3. 4,5 promillee

      Aika rajut lukemat joku eilen puhaltanut.
      Suomussalmi
      27
      5857
    4. Perussuomalaiset kirjoittaa vain positiivisista uutisista

      Ei tarvitse palstaa paljon seurata, kun sen huomaa. Joka ainoa positiivinen uutinen Suomen taloudesta tai ylipäätään, ni
      Maailman menoa
      81
      5715
    5. Jätä minut rauhaan

      En pidä sinusta. Lopeta seuraaminen. Älä tulkitse keskustelutaitoa tai ystävällisyyttä miksikään sellaiseksi mitä ne eiv
      Ikävä
      43
      5569
    6. Ben Z: "SDP ei ole ollut 50 vuoteen näin huolissaan velasta"

      "– Olen ollut eduskunnassa noin 50 vuotta, eikä SDP ole koskaan ollut niin huolissaan velasta kuin nyt. Se on tietysti h
      Maailman menoa
      99
      5464
    7. Harmittaako sinua yhtään?

      Tuntuuko pahalta ollenkaan?
      Ikävä
      62
      4903
    8. Voiku saisi sen sun

      Rakkauden kokea. Tykkään susta niin paljon edelleen.
      Ikävä
      43
      4577
    9. Mitä luulet, miten Martina Aitolehti pärjää Erikoisjoukoissa?

      Kohujulkkis, yrittäjä ja hyvinvointivalmentaja Martina Aitolehti on mukana Erikoisjoukot-realityssä. Erikoisjoukot on
      Suomalaiset julkkikset
      57
      3916
    10. Olitpa ikävän

      Kylmä eilen. Miksi ihmeessä?
      Ikävä
      49
      3555
    Aihe