[Risolto] sostituzioni caratteri
Inviato: domenica 7 dicembre 2008, 12:10
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??
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??