Ciao,
ho un problema con uno script... praticamente partendo da una parola riesco a scriverla i tutti i modi possibili (maisucolo e minuscolo).
Ad esempio dalla parola CIAO riesco ad ottenre:
ciao
ciaO
ciAo
ciAO
cIao
cIaO
cIAo
cIAO
Ciao
CiaO
CiAo
CiAO
CIao
CIaO
CIAo
CIAO
che sono le 16 combinazioni possibili di maiuscole e minuscole.
Ora vorrei fare in modo di definire per ogni lettera uno o più simboli e ricalcolare le possibili combinazioni.
Ad esempio la lettera "a" o "A" vorrei sostituirla con "@" o con "4" e la lettera "i" o "I" con "1" etc...e calcolare quindi tutte le relative varianti tenendo presente che se la parola fosse stata "CIAI" le sostituzioni della lettera "I" dovrebbero avvenire in due tempi in modo da calcolare anche la possbilità che esista un C1Ai o CIA1 e non solo un C1A1. (Spero si capisca)
Se il file con la scritta CIAO nei sedici casi sopra elencati fosse contenuta nel file output.txt potrei sostituira le "a" e le "A" con il "4" in questo modo:
cat output.txt | tr a 4 > temp1.txt
cat output.txt | tr A 4 > temp2.txt
cat output.txt | tr a 4 | tr A 4 > temp3.txt
cat temp1.txt temp2.txt temp3.txt >> def1.txt
awk ' !x[$0]++' def1.txt > def2.txt
Solo che poi dovrei fare la stessa cosa per sostituire le "a" e le "A" con il "@" e fare il merge con tutte le altre varianti.... cioè la "A" o "a" scritta come "@" o "4" e la "C" o "c" scritta come "(" e/o la "i" o "I" scritta come "1" e via dicendo...
Mi rendo conto che il mio codice alla lunga è ingestibile in questo modo ... avete qualche idea??
[Risolto] sostituzioni caratteri
[Risolto] sostituzioni caratteri
Ultima modifica di gabo il domenica 7 dicembre 2008, 15:32, modificato 1 volta in totale.
Re: sostituzioni caratteri
In un linguaggio "normale" ti consiglierei di usare un FOR per ogni lettera:
for x in (c,C)
for y in (i,I,1)
etc.etc
Ma in bash puoi usare le parentesi graffe:
Per parole più lunghe, probabilemente ti conviene il metodo dei FOR annidati di cui sopra 
for x in (c,C)
for y in (i,I,1)
etc.etc
Ma in bash puoi usare le parentesi graffe:
Codice: Seleziona tutto
echo {c,C}{i,I,1}{a,A,@,4}{o,O}Raising Elephants Is So Utterly Boring
Re: sostituzioni caratteri
Geniale la cosa dell' echo .... caspita!
mi hai risparmiato un sacco di righe di codice !
Grazie mille!
mi hai risparmiato un sacco di righe di codice !
Grazie mille!
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
