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

320

    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. Joensuun kaupunki levittelee tonttitietoja Keskisuomalaiselle

      Sähköposteja ja tonttitietoja levitellään mm. Pasi Koivumaalle
      Joensuu
      23
      3061
    2. Tiesitkö tätä ex-miehistä? Noriko Salo jysäytti yllätyspaljastuksen

      Noriko Salo ja ex-F1 kuski Mika Salo olivat naimisissa v. 1999-2022. Kirsi Salon ex-mies puolestaan on muusikko Sammy A
      Kotimaiset julkkisjuorut
      12
      2149
    3. Kuka? Riehui valtuuston kokouksessa tänään ?

      Onko puolangan puolesta porukkaa. Vaikuttaa siltä. Sairasta.
      Puolanka
      69
      2000
    4. Huh, huh! Sofia Belorf ei ole itse pessyt hiuksiaan kolmeen vuoteen

      Sofia Belorf elää ökyelämää Dubaissa. Sofian arjessa kulta, raha ja luksus ovat vahvasti läsnä. Luksuselämään tottuneell
      Kotimaiset julkkisjuorut
      100
      1843
    5. Toivoisitko Rakas vielä?

      Haluaisitko vielä? Uskoisin osaavani näyttää sinulle, kuinka ainutlaatuinen nainen olet.
      Ikävä
      76
      1573
    6. Ihan pieni näkeminen vaan

      👋 ja minä olisin valmis jo vaikka mihin sun kanssa. Nämä on näitä.. 🤫🫣😘💥
      Ikävä
      40
      1356
    7. Sointu Borg tilittää - Ei suostu enää tähän työhön: "Katastrofi"

      Sointu Borg on mediapersoona, joka löi itsensä läpi Diili-realityssä. Borg on monipuolinen tekijä: mediapersoona, juonta
      Suomalaiset julkkikset
      14
      1292
    8. Keskustelua kasteesta

      You tubessa kaksi pappia keskustelivat kasteesta ja kritisoivat raamatullista uskovien kastetta. Toinen heistä yritti
      Kaste
      400
      1275
    9. Jos saisit antaa yhden neuvon

      jälkikasvullesi elämää varten, niin minkä antaisit?
      Sinkut
      111
      1085
    10. Tulipalo viimeyönä

      Olipa ikävä kuulla tämä tulipalo, nyt on jatkuvasti asuinpaloja.Grillikausi alkanut.Grillit pois parvekkeilta ja asuntoj
      Jämsä
      15
      1066
    Aihe