opss rileggento ho visto un errore: while [ $post_id = 0 ]; do --> while [ $max_post_id = 0 ]; do
Il 13/02/15, MaX<maxlinux2...@gmail.com> ha scritto: > 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 > -- 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/CAEyAVmsZGJSjTFtVHy10s9FrMS_Kp+v=st7jgyd3o2k9gat...@mail.gmail.com