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: -… ..- — -. -.. .. …- . .-. – .. — . -. – — !!!

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
  • Fernando

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

    qui hai scritto:
    hellt wrld

    non hello world !!

Pinterest