• 20 Febbraio 2008
  • 1 Stella2 Stelle3 Stelle4 Stelle5 Stelle 1 voti

Codice morse con Linux

Vi ricordate il vecchio codice morse? Punto, linea, punto, linea linea punto, punto punto… che confusione!! Però sarebbe bello ogni tanto poter scrivere qualche messaggio in codice morse, così, tanto per divertirsi. Ad esempio:

…. . .-.. .-.. —  .– — .-. .-.. -..

Che ho scritto? Per questa volta ve lo dirò, ho scritto il classico “Hello world”. Si inizia sempre così, no?

telefono primitivo

Vediamo come possiamo scrivere un semplice programmino in Linux che ci permetta di scrivere del codice morse. Sembra difficile, vero? Vi assicuro che è una vera sciocchezza, sempre se si usano gli strumenti giusti.

E lo strumento giusto, in questo caso, si chiama sed. Sed sta per Steram EDitor e permette di fare un sacco di cose, la più banale delle quali è quella che useremo noi, ossia la sostituzione del testo.

La sintassi di sed è semplice, vediamola con un esempio stupido:

$echo "Io sono Topolino" | sed 's/Topolino/Pippo/g'

Questo comando sostituisce “Topolino” con “Pippo” e l’effetto è che a video verrà stampato: “Io sono Pippo”.

Per il codice morse la cosa è molto simile, infatti, come sappiamo, a ogni lettera corrisponde una sequenza di punti e linee, quindi basta istruire sed per fare le giuste sostituzioni.

Dato che le lettere sono parecchie, non è conveniente scrivere tutto su una riga, diverrebbe davvero illeggibile. E’ meglio utilizzare un file dove andare a scrivere il programma in sed (eh sì, “s/Topolino/Pippo/g” è un vero e proprio programma, anche se il linguaggio non è proprio user-friendly) e poi invocarlo da riga di comando tramite un parametro specifico.

Il programma in sed è molto semplice, si tratta solo di una serie di sostituzioni. Il codice morse può essere recuperato da internet molto facilmente. Ecco il listato del programma:

s/[Aa]/.- /g

s/[Bb]/-... /g

s/[Cc]/-.-. /g

s/[Dd]/-.. /g

s/[Ee]/. /g

s/[Ff]/..-. /g

s/[Gg]/--. /g

s/[Hh]/.... /g

s/[Ii]/.. /g

s/[Jj]/.--- /g

s/[Kk]/-.- /g

s/[Ll]/.-.. /g

s/[Mm]/-- /g

s/[Nn]/-. /g

s/[Oo]/--- /g

s/[Pp]/.--. /g

s/[Qq]/--.- /g

s/[Rr]/.-. /g

s/[Ss]/... /g

s/[Tt]/- /g

s/[Uu]/..- /g

s/[Vv]/...- /g

s/[Ww]/.-- /g

s/[Xx]/-..- /g

s/[Yy]/-.-- /g

s/[Zz]/--.. /g

s/1/.---- /g

s/2/..--- /g

s/3/...-- /g

s/4/....- /g

s/5/..... /g

s/6/-.... /g

s/7/--... /g

s/8/---.. /g

s/9/----. /g

s/0/----- /g

Come si può notare è lo stesso comando ripetuto più volte, una per ogni sombolo del codice morse. Le lettere maiuscole e minuscole possono essere rappresentate nella forma [Aa] etc, in quanto la prima parte del comando sed è un’espressione regolare.

Salvato questo programma in un file, ad esempio chiamato “morse”, il comando per scrivere in morse è il seguente:

$ echo "Mondo Informatico" | sed -f morse
-- --- -. -.. ---  .. -. ..-. --- .-. -- .- - .. -.-. ---

Buon divertimento, anzi: -… ..- — -. -.. .. …- . .-. - .. — . -. - — !!!

RSScommenti all'articolo (1)

  • Fernando Fernando

…. . .-.. .-.. — .– — .-. .-.. -..

qui hai scritto:
hellt wrld

non hello world !!

inserito il 12 Agosto 2008 alle 13:02

scrivi commento

Nome:

Email:

Url:





Da oggi mondoinformatico è presente anche su facebook!

Visto che più siamo e più guadagnamo e visto che più ci leggono più guadagnate…fate conoscere mondoinformatico a tutti i vostri amici di facebook, sicuramente qualcuno vorrà scrivere e guadagnare come voi…

  • SONDAGGIO
Che notizie vorresti trovare su mondoinformatico?
Visualizza risultati
  • CRITEO
  • CHATTING

utenti online

Ci sono attualmente 0 utenti e 20 ospiti collegati