pensavo di fare una cosa del genere, ma si tratta di 400.000 post, e non si se è abbastanza veloce
-------------------------------------- source config.conf post_id=$(mysql --database="$MYDB" --user=$USER --password="$PASSWD" -e "SELECT MAX(post_id) AS post_id FROM phpbb_posts;") max_post_id=$(echo $post_id | sed 's|^post_id ||') #echo max_post_id=$max_post_id # numero da usare per il ciclo for o while while [ $post_id = 0 ]; do post_username=$(mysql --database="$MYDB" --user=$USER --password="$PASSWD" -e "SELECT post_username FROM phpbb_posts WHERE post_id= $post_id;") post_username=$(echo $post_username | sed 's|^post_username ||') # echo post_username=$post_username post_text=$(mysql --database="$MYDB" --user=$USER --password="$PASSWD" -e "SELECT post_text FROM phpbb_posts WHERE post_id= $post_id;") post_text=$(echo $post_text | sed 's|^post_text ||') new_post_text=$(echo $post_text | sed "s|\[quote:3pjjad9s\]$post_username,\([0-9/]*\), \([0-9:]*\)\]<br>||I") # echo $new_post_text mysql --database="$MYDB" --user="$USER" --password="$PASSWD" -e "UPDATE phpbb_posts SET post_text = \"$new_post_text\" WHERE post_id = \"$post_id\"" let post_id=post_id-1 done -------------------------------------------- ...che ne dite? MaX Il 13/02/15, MaX<maxlinux2...@gmail.com> ha scritto: > ciao a tutti > > avrei un problema con le espessioni regolari dentro ad una query mysql > inglobata a sua volta in uno script :) > > chpass() { > mysql --database="$MYDB" --user="$USER" --password="$PASSWD" -e > "UPDATE phpbb_users > SET user_password = \"$HPPASS\" WHERE username = \"$PHPBB_USER\"" > } > > questo sopra è un esempio che uso per modificare via script la passwd > di un utente in phpbb. > > Ora peró vorrei cancellare una parte di testo dal campo " > phpbb_posts/post_text" ma solo se dentro a questo testo appare: > [quote]nome utente,20/7/2012, 19:54] e il nome utente coicide con il > relativo campo " phpbb_posts/post_username" > > Praticamente c' è da cancellare la linea "[quote]Alfredo,20/7/2012, > 19:54]" solo se nel campo "post_username" il nome coincide con > "Alfredo". > > A complicare le cose... la data di fianco è variabile, e il > "[quote]Alfredo,20/7/2012, 19:54]" > è sempre nella seconda linea > > Come se non bastasse, se nel messsaggio compare un > "[quote]Alfredo,20/7/2012, 19:54]", ma nel "post_username" il nome è > differente da "Alfredo", allora bisogna lasciarlo. > > ..e naturalmente il resto del messaggio deve rimanere inalterato. > > qualche idea? > > io stavo pensando di estrarre il post_id,post_text,post_text con una > query, fare le comparazioni con gli strumenti della shell linux, > togliere eventualemente il testo e poi reimmettere il testo modificato > usando come riferimento il post_id > > o ci sono soluzioni migliori... e più rapide... interne a mysql? > > ciao > MaX > -- ciao, MaX -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/caeyavmuo2uo+edur1czegngt6foav7pkriacndwst_kj0fm...@mail.gmail.com