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
279
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
Taas nuoren kuolema
Vasunmäentiellä paha onnettomuus. Nuori nainen menehtyi. Niiin sydäntä riipaisevaa 😭1264600Elikkäs persuissa ovat pahimmat häiriköijät
Koska sieltä tuli kaikkein kovin ulahdus. Persujen peesissä seuraa kokoomus js hajuraon päässä röhkii kepulaiset. Olipa693294"Skandaali muhii SDP:ssä" - "pelon ilmapiiri vallitsee"
Puolueen johto on vähintään vastuussa ilmapiiristä, jossa häirinnän uhrit eivät ole saaneet ääntään kuuluviin. Vyyhdin1043164Tehomaksu rankaisisi normaalista sähkönkäytöstä
Energiaviraston valmistelema tehomaksumalli herättää aiheellista huolta erityisesti tavallisten kotitalouksien näkökulma392611Ahdistelu ongelmaa vain vasemmistossa - ei oikeiston edustajissa
Mutta demarit ovat tunnetusti sivistymättömiä, ja vähemmän fiksuja.282312- 1071563
- 491116
Trump asettaa Grönlannin kaappausta vastustaville Euroopan maille 10% tuontitullin
Suomi mukana näissä maissa. Myöhemmin Trump aikoo nostaa tuontitullit 25%:iin kesäkuun alusta, jos Grönlannin kaappausta3371098- 49852
Mitä luulet mies
Olisko tämä mun mustasukkaisuus iso ongelma meidän suhteessa? Tiedän, että se ei ole hyvä asia, mutta tykkään susta niin55681