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

186

    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. Janne Ahonen E R O A A

      Taas 2 lasta jää vaille ehjää perhettä!
      Kotimaiset julkkisjuorut
      126
      2073
    2. Terveystalon lääkärit ylilaskuttaneet

      Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K
      Maailman menoa
      130
      1543
    3. En kai koskaan saa sinua

      Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k
      Ikävä
      94
      1408
    4. Nyt on aika laittaa parit selkoon.

      Onko pareja täällä. Laita kirjaimet kuka tykkää kenestäkin ?
      Ikävä
      63
      1244
    5. Saran ökytyyli käänsi katseita.

      On nyt kyllä Sara kasvoistaan, kuvan perusteella todellakin pyöristynyt ainakin kuvan perusteella.
      Kotimaiset julkkisjuorut
      140
      1181
    6. The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."

      Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut
      Tv-sarjat
      12
      1111
    7. Työttömille lusmuille luvassa lisää keppiä

      Hallitus aikoo kiristää velvoitteiden laiminlyönnistä seuraavia työttömyysturvan karensseja ensi vuodesta alkaen. Hall
      Maailman menoa
      223
      932
    8. Ootko huomannut miten

      pursuat joka puolelta. Sille joka luulee itsestään liikoja 🫵🙋🏻‍♂️
      Ikävä
      155
      895
    9. Tiedän kaiken sinusta ja kaikesta

      Tiedän miten kärsit. Tiedän millanen oikeesti oot. Tiedän miksi valehtelit, tiedän miksi satutit mua. Tiedän mitä tapaht
      Ikävä
      57
      813
    10. Miksi ihmeessä?

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek
      Ateismi
      20
      779
    Aihe