Palindromin testaaminen bashilla

Anonyymi

Illan huuhaa-viritelmä. Alussa olevaan muuttujaan testattava "palindromi".

Merkkijono muutetaan ensin pieniksi kirjaimiksi, jonka jälkeen siitä poistetaan välilyönnit ja muutama erikoismerkki. Sitten sitä verrataan käännettyy versioon.

$ palindromi="Aattona Jaana Aro on siro deeku. Taas sikana kana kissaa tukee. Doris-Noora, Anaa janottaa!"; echo -n "\"$palindromi\" "; palindromi=`echo ${palindromi,,}`; palindromi=`echo ${palindromi//[\!-., ?]/}`; if [ ${palindromi} = `echo ${palindromi} | rev` ]; then echo -n on; else echo -n ei ole; fi; echo " palindromi."
"Aattona Jaana Aro on siro deeku. Taas sikana kana kissaa tukee. Doris-Noora, Anaa janottaa!" on palindromi.

$ palindromi="Aattona Jaana Aro ei ole siro deeku. Taas sikana kana kissaa tukee. Doris-Noora, Anaa ei janota!"; echo -n "\"$palindromi\" "; palindromi=`echo ${palindromi,,}`; palindromi=`echo ${palindromi//[\!-., ?]/}`; if [ ${palindromi} = `echo ${palindromi} | rev` ]; then echo -n on; else echo -n ei ole; fi; echo " palindromi."
"Aattona Jaana Aro ei ole siro deeku. Taas sikana kana kissaa tukee. Doris-Noora, Anaa ei janota!" ei ole palindromi.

5

244

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Älä tee tätä kotona

      • Anonyymi

        Mutta kun minä kerkisin jo tehdä, entä nyt?


    • Anonyymi

      Olihan tuo karsee yhdellä rivillä. Tehdään siitä tekstitiedosto, joka tallennetaan vaikka nimellä "onko-palindromi.sh", joka sitten muutetaan suoritettavaksi skriptiksi komennolla "chmod x ./onko-palindromi.sh" minkä jälkeen kokeillaan:

      $ ./onko-palindromi.sh "Atte diat otti. Hitto! Taidetta!"
      "Atte diat otti. Hitto! Taidetta!" on palindromi.

      $ ./onko-palindromi.sh "Atte diat vei. Hitto! Missä Atte?"
      "Atte diat vei. Hitto! Missä Atte?" ei ole palindromi.

      Ja se siihen skriptitiedostoon siis:

      #!/bin/bash

      # Tulostetaan parametrina annettu merkkijono
      # lainausmerkkien sisällä
      echo -n "\"$1\" "

      # Muutetaan kaikki merkit pieniksi ja
      # sijoitetaan muuttujaan x
      x=`echo ${1,,}`

      # Poistetaan huuto- ja kysymysmerkki, piste,
      # pilkku, viiva, välilyönti ja kaksoispiste
      x=`echo ${x//[\!-., ?\:]/}`

      # Verrataan merkkijonoa käännettyyn
      if [ ${x} = `echo ${x} | rev` ]; then

      # Jos ovat sama, tulostetaan "on"
      echo -n on

      else
      # Jos eivät ole samoja, tulosteaan "ei ole"
      echo -n ei ole
      fi

      # Tulostuksen loppu
      echo " palindromi."

      • Anonyymi

        Ja taas tuli hyvä suoritus mukaan.

        Tykkäsin tästä tavasta poistaa merkkejä merkkijonosta:
        x=`echo ${x//[\!-., ?\:]/}`

        Vaihtoehtoisesti sen voi kirjoittaa näin:
        x=$(echo ${x//[\!-., ?\:]/})

        t. Turbo Urpo kiittää ja kumartaa.


      • Anonyymi
        Anonyymi kirjoitti:

        Ja taas tuli hyvä suoritus mukaan.

        Tykkäsin tästä tavasta poistaa merkkejä merkkijonosta:
        x=`echo ${x//[\!-., ?\:]/}`

        Vaihtoehtoisesti sen voi kirjoittaa näin:
        x=$(echo ${x//[\!-., ?\:]/})

        t. Turbo Urpo kiittää ja kumartaa.

        Totta. Gravis ei aina edes erotu välttämättä kovin selvästi. Taitaa olla joku jäänne historiasta.

        https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html


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

    Luetuimmat keskustelut

    1. Mikä se Mira Luodin ohjelma oli?

      Ja onnistuiko hiljaiseksi maksaminen sittenkään, jos myöhemmin sanoo, että tuollaista tapahtunut? Ihmiset alkaa pohtiin
      Maailman menoa
      274
      10228
    2. IL - Kansanedustaja tehnyt ITSEMURHAN eduskuntatalossa!!

      "IL:n tiedot: Kansanedustaja tehnyt itsemurhan Eduskuntatalossa Iltalehden tietojen mukaan kansanedustaja on tehnyt its
      Maailman menoa
      329
      7302
    3. Verinen koira

      Mikä juttu on tämä Karhumäellä pyörinyt verinen koira? Oliko hyökännyt jonkun kimppuun?
      Imatra
      85
      1953
    4. Eemeli Peltonen teki itsemurhan eduskuntatalossa

      Kevyet mullat sitten vaan. Ei mulla muuta.
      Maailman menoa
      119
      1679
    5. Mira Luoti, Vain Elämää

      kausi 8. mukana aluksi mm. Terhi Kokkonen ja Mira Luoti. taustalla myös Danny ja Kashmir. paljonko 1+1 olikaan?
      Maailman menoa
      6
      1511
    6. Mira Luoti koki seksivvaltaa sarjan kuvauksissa. Otti hyssyttelyrahat mutta nyt julkistaa asian?

      Kun hyvin tietää että helppo päätellä mikä ohjelma kyseessä. Ja jos koki oikein "väkivaltaa" eli raisk, niin edesvastuut
      Kotimaiset julkkisjuorut
      75
      1339
    7. Faktat kehiin!

      kauanko aiot odottaa kaivattuasi? ja miks?
      Ikävä
      109
      1191
    8. Mopokeulija

      Poliisit saisivat käydä noukkimassa sinipuseroisen keulijan tuota pikaa. Koulureppu selässä yhdellä pyörälla S-Marketin
      Haapavesi
      48
      979
    9. Sonnisen turha valitus selvästä asiasta !

      Nyt tuli sellainen valitus jossa ei järjen häivää, Sonninen ja koko hallinto munaa itsensä. Hänestä on tulossa pilkunnus
      Ähtäri
      26
      838
    10. MUISTATTEKO SEN?

      Karhean tummansövyisen raastavsn huudon : RYKIKÄÄ! NIITÄ RAATOJA@ RÄKIKÄÄ NIITÄ EAATOJA!btämän paeoni aina toivotti rakk
      Joukkoliikenne
      312
      762
    Aihe