18 ottobre 2014

Facciamo gli anagrammi con Linux


L'origine degli anagrammi è antica e radicata nei secoli. Studiati dai cabalisti, usati dagli scrittori per creare pseudonimi al fine di aggirare la censura, amati dagli appassionati di giochi enigmistici in tutte le epoche.
Crearli richiede spesso fantasia e conoscenza della lingua. Chi come me ha difficoltà a risolverli può usare alcuni stratagemmi. Uno di questi è l'utilizzo di an, un semplice programma da eseguire nel terminale sulle nostre distribuzioni Linux tramite il quale potremo generare rapidamente tutti gli anagrammi che vogliamo.
Il funzionamento del programma è semplicissimo. Ovviamente la prima cosa da fare è installarlo. Se siete su Ubuntu e derivate potete installarlo da terminale dando

sudo apt-get install an

Una volta fatto vi basterà usare la seguente sintassi base (che potete scoprire grazie all'uso del manuale di an dando, sempre da terminale, man an)

an -l(NUMERO DI PAROLE) -d /usr/share/dict/italian "(PAROLA O PAROLE DA ANAGRAMMARE)"

Vediamo di fare un esempio. Se io voglio generare degli anagrammi formati da 2 parole del mio nome basterà dare

an -l2 -d /usr/share/dict/italian "marco giannini"

Come potete vedere ho messo 2 al (NUMERO DI PAROLE) e ho scritto il nome da anagrammare al posto di (PAROLA O PAROLE DA ANAGRAMMARE). 

Dando il comando di sopra otterrò un risultato come questo

faccio innamorare i cigni


Alcuni risultati sono comici :D
Come potete vedere l'altra stringa usata nel comando è /usr/share/dict/italian che indica ad an di usare come base il dizionario italiano. Se abbiamo altri dizionari possiamo ovviamente cambiare.
Se per esempio siamo su Ubuntu abbiamo preinstallato sia il dizionario inglese che quello americano.
Per il dizionario inglese vi basterà sostituire a /usr/share/dict/italian la stringa /usr/share/dict/british-english mentre per quello americano /usr/share/dict/british-american
NOTA: nel caso non fosse presente per installare il dizionario italiano vi basterà dare 
sudo apt-get install witalian
Per installare altri dizionari potete ricorrere a synaptic e cercare quello della lingua che volete installare tipo wbritish per l'inglese, wamerican per l'americano, wspanish per lo spagnolo etc.

Del tipo se voglio anagrammare il mio nome usando il dizionario inglese formando tre lettere basterà dare:

an -l3 -d /usr/share/dict/british-english "marco giannini"

La lista comandi di an è lunga

SYNOPSIS
       an  [-w] [-c string] [-d dictionary] [-l number_words] [-m word_length]
       [-u string] [-n number_anagrams] [-h] [-v] [--words] [--contain string]
       [--dict  dictionary]  [--length  number_words]  [--minimum word_length]
       [--used string] [--number number_anagrams] [--help] [--version] PHRASE

DESCRIPTION
       an finds all anagrams which can be made from  the  letters  in  PHRASE,
       using  words  in  the  specified  dictionary.  The  default  is  to use
       /usr/share/dict/words.

OPTIONS
       -w, --words
              Print words that the letters in PHRASE can make, then exit.

       -c, --contain string
              Only print anagrams which contain string.

       -d, --dict dictionary
              Use dictionary file to find words which the  letters  in  PHRASE
              can make.

       -m, --minimum word_length
              Only include word which are at least word_length long.

       -u, --used string
              Considers  that letters in string have already used when analyz‐
              ing letters in PHRASE.  Like --contain  but  doesn't  print  out
              string.

       -l, --length number_words
              Finds  anagrams  which  have  a maximum of number_words words in
              them.  This is very useful when number  of  anagrams  which  are
              output is large.

       -n, --number number_anagrams
              Stops after finding number_anagrams anagrams.

       -h, --help
              Print a usage message on standard output, then exit.

       -v, --version
              Print version information on standard output, then exit.

e come potete vedere possiamo specificare anche parametri come la lunghezza delle parole o la presenza di qualche stringa, del tipo voglio anagrammi di marco giannini di tre lettere che contengono la parola con dando

an -l3 -d /usr/share/dict/italian -c con "marco giannini"

Insomma potete sbizzarrirvi.

Ringrazio +Luigi Iannoccaro di +Lubit Linux per avermi dato lo spunto per realizzare questo post grazie ad un suo post su facebook dove faceva vedere come anagrammare il suo nome con questo programma. 

Nessun commento:

Posta un commento

Licenza
Licenza Creative Commons

Quest' opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported. Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Non può, pertanto, considerarsi un prodotto editoriale, ai sensi della legge n. 62 del 7/03/2001

Disclaimer immagini

Le immagini utilizzate in questo blog appartengono ai loro rispettivi autori e sono utilizzati per scopi educativi, personali e senza scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale, ma se si riconosce un'immagine protetta da copyright, fatemelo sapere qui, e sarò lieto di aggiungere i credits o modificarla o rimuoverla.

Disclaimer images

Images used on this blog belong to their respective authors and are used for educational, personal and no profit purposes. Any eventual copyright infringement is not intentional, but if you recognize a copyrighted image, please let me know here, and I'll happily provide to add the right credits or modify or remove it.