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

297

    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. Riikka ei suostu laskemaan bensan hintaa

      Sanna laski esimerkiksi sähkön arvonlisäveron 10 prosenttiin, jonka Riiikka anosti 25,5 prosenttiin. Sannan aikaan bens
      Maailman menoa
      225
      4033
    2. Maahanmuuttajien vaikutus Suomen valtiontalouteen positiivinen

      Maahanmuuttajat maksavat enemmän tuloveroja kuin saavat tulonsiirtoja. Eroavat persuista tässä suhteessa. Persuista o
      Maailman menoa
      133
      3487
    3. EK: Suomi tarvitsee vuosittain 45 000 maahanmuuttajaa

      Senpä takia Riikkakin laulaa sen lauluja kenen leipää syö. Viime vuonnahan Suomeen muutti 50 tuhatta ulkomaalaista. htt
      Maailman menoa
      295
      2822
    4. Kesäaika on normaaliaika...

      ...siten illalla on valoisaa tunnin pitempään, on sitten kesä tai talvi. Voi nauttia päivän jatkumisesta. Kuka nyt aamul
      Maailman menoa
      262
      2344
    5. Uusin tutkimus: Suomi on maailman toiseksi vähin rasistinen maa

      taakse jää mm. Ruotsi(7) ja Norja(8). Martin Paasi(kok.): Kumoaa vasemmiston väitteet. Kansainvälinen vertailu osoitta
      Maailman menoa
      81
      1986
    6. Ketkä 8 Ähtärin luottamushenkilöä saivat syytteen virka_aseman väärinkäyttämisestä?

      Nyt näiden valtuutettujen nimet esiin, kiitos! Nämä henkilöt pitää yksinkertaisesti laittaa syrjään Ähtärin kaupunginva
      Ähtäri
      43
      1689
    7. Ulkomaalaistaustaiset tulevat kalliiksi yhteiskunnalle.

      Selvitys: Ulkomaalaistaustaiset saivat selvästi enemmän työttömyysetuuksia ja toimeentulotukea kuin suomalaistaustaiset.
      Maailman menoa
      51
      1686
    8. Ähtärin päättäjät

      Nyt tulee kutsu leivättömän pöydän äärelle. Syytteet nostetaan. https://www.iltalehti.fi/kotimaa/a/cef83309-0a1b-4fcd-9b
      Ähtäri
      53
      1407
    9. Tulen hulluksi hänestä

      Hän on vanha ja varattu. Mutta olen ihan hulluna häneen. Haluan hänet omakseni. Haluan olla hänen kanssaan ajasta ikuisu
      Ikävä
      70
      1328
    10. Ensimmäinen kuukausi palkatatta

      Siis ei jumankauta näitä kokoomuksen ehdoituksia. Nytkin joku Otto Meri ehdoittaa, että ensimmäinen kuukausi pitäisi ty
      Kansallinen Kokoomus
      109
      1158
    Aihe