[Linuxtrent] Multiple Search & Replace [from the command line]

  • From: Daniele Gubert <dtm@xxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sat, 08 Jun 2002 16:57:01 +0200

So che Ianezz sa... ma non so se accetta voti di scambio ;)

Problema:

ho un database MySQL con 261 tabelle che devo scambiare [avanti e indietro] 
tra Windowze e Linux con una certa frequenza, passando per un dump in 
formato testo.  MySQL per Win32 purtroppo converte in LOWERCASE [tutte 
minuscole] i nomi delle tabelle [del tipo laPappaColPomodoro] rompendo 
tutte le query SQL che il mio applicativo PHP spara a MySQL per Linux, che 
è CASE SENSITIVE.

Soluzione:
1. chiamare tutte le tabelle con nomi minuscoli [troppo tardi!]

2. Fare un global search&replace sul file dump.sql che va a correggere i 
nomi di tutte le tabelle prima di fare un import nel DB sotto Linux.

Con mysqlshow posso generare la lista delle tabelle case sensitive, quindi 
con un trucco costruire un array separato da virgola del tipo 
lowercase,casesensitive.

lapappacolpomodoro,laPappaColPomodoro
latabellabella,laTabellaBella
lamaionesegialla,laMaioneseGialla
....,....

Domanda: usando "sed" in loop o altro bel comandino shell che ignoro, come 
fare il search&replace multiplo sul file dump.sql prendendo come parametri 
le righe dell'array contenute in un file con il formato di cui sopra 
[tableconvert.txt]?

Grazie, :DTM. aka Daniele Gubert


-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: