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.
Palindromin testaaminen bashilla
5
293
Vastaukset
- 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
Epäily: Räppäri yritti tappaa vauvansa.
https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p455150Onko Sanna menossa Ukrainaan viettämään vuosipäivää?
Kun on bongattu Varsovan lentokentältä?1241643Välillä kyllä tuntuu, että jaat vihjeitä
Mutta miten niistä voi olla ollenkaan varma? Ja minä saan niistä kimmokkeen luulemaan yhtä sun toista. Eli mitä ajatella151519Räppäri kuoli vankilassa
Ei kuulemma ole tapahtunut rikosta. Sama vahinkohan kävi Epsteinille. https://www.hs.fi/suomi/art-2000011840869.html "501436- 141215
Kulukusuunnat
Eikö kuhmolaiset iha oikiasti tiiä kumpi o vasen ja kumpi oikia? Tuolla ku liikennemerkissä näkyy nuolet ylös ja alas, v4111081-vuotias Frederik avoimena - Ei omasta mielestä kelpaa tästä syystä realityihin: "Veemäinen..."
Junttidiscon kuninkaana tunnettu Frederik, 81, on esiintymislavoilla suvereeni tekijä. Mies on viihdyttänyt ympäri Suome171037Muusikko yritti tappaa kaksiviikkoisen vauvan
Karu epäily: Muusikko, 32, yritti tappaa kaksiviikkoisen vauvan Oulussa. IS:n selvityksen perusteella miestä ei ole syy76999No kyllä te luuserit voitte tehdä mitä vaan keskenänne, sitä en ymmärrä miksi pelaat,nainen
Pisteesi silmissäni, edes ystävätasolla tippui jo tuhannella, kun sain selville pelailusi, olet toisen kanssa, vaikka ol19906Tynkä Eläintarha ei ole enää visiitin väärti
Ähtärin MesiZoo on vajonnut alas. Näytillä olevien eläinten määrä on romahtanut lähemmäs -40%. Paikat ovat päässeet pah60827