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

101

    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. Onks sulle väliä, jos jokin kaivattusissa

      ei ole täydellistä? Esim. venytysmerkit, arvet, selluliitti, epäsymmetriset rinnat, vinot hampaat jne?
      Ikävä
      87
      4688
    2. Ei sinussa ollut miestä

      Selvittämään asioita vaan kipitit karkuun kuin pikkupoika.
      Ikävä
      134
      4203
    3. Shokkiyllätys! 31-vuotias Hai asuu vielä "kotona" - Anna-vaimon asenne ihmetyttää: "No ei tämä..."

      Hmmm, mitenhän sitä suhtautuisi, jos aviomies/aviovaimo asuisi edelleen lapsuudenperheensä kanssa? Tuore Ensitreffit-vai
      Ensitreffit alttarilla
      36
      2785
    4. Eikö Marin ollut oikeassa kokoomuksen ja persujen toiminnasta

      Ennen vaaleja Marin kertoi mitä kokoomus tulisi hallituksessa tekemään ja tietysti persut suostuu kaikkeen, mitä kokoomu
      Maailman menoa
      209
      1817
    5. Olet elämäni rakkaus

      On ollut monia ihastumisia ja syviäkin tunteita eri naisia kohtaan, mutta sinä olet niistä kaikista ihmeellisin. Olet el
      Ikävä
      37
      1357
    6. Missä Steffe hiihtää?

      Missä reppuli luuraa? Ei ole Seiskassa mitään sekoiluja ollut pariin viikkoon? Onko jo liian kylmä skulata tennistä ulko
      Kotimaiset julkkisjuorut
      25
      1339
    7. Wiisaat Lappajärvellä iät.

      Nyt nimiä listaan menneistä ja nykyisistä Wiisaista Lappajärveläisistä. Itseäkin voi tuoda esille kaikessa Wiisaudessa.
      Lappajärvi
      12
      1316
    8. Ratkaiseva tekijä kiinnostuksen heräämisessä

      Mikä tekee deittikumppanista kiinnostavan? Mitä piirrettä arvostat / et arvosta?
      Sinkut
      67
      1278
    9. Milloin nainen, milloin?

      Katselet ja tiedän, että myös mieli tekee. Voisit laittaa rohkeasti viestin. Tiedät, että odotan. Ehkä aika ei ole vielä
      Ikävä
      61
      1233
    10. Seiska: Konsta Hietanen ja Aami-rakas iltamenoissa - Salkkareista Aami täräyttää: "Sarja oli..."

      Konsta Hietanen jätti Salatut elämät -draamasarjan tänä syksynä. Konstaa kyllä kaivataan vieläkin Salkkareissa! Lue li
      Suomalaiset julkkikset
      2
      1212
    Aihe