Myliu komandinę eilutę :*

Tiesiog norėjau pasidalinti neįtikėtinai geru jausmu, kuris aplanko, kai rezultatai naudojantis komandine eilute pranoksta lūkesčius!

Kadangi esu Web programuotojas, tai kartais testavimams reikia iš vienos duomenų bazės pasiimti keletą duomenų ir juos persikelti į savo darbinę mašiną. Tai gi, užduotis komandinei eilutei gan paprasta:

Reikia iš nuotolinio serverio MySQL duomenų bazės išeksportuoti tam tikrų lentelių duomenis. Tuos duomenis perkelti į savo kompiutery, sukeisti išeksportuotų lentelių prefiksus ir galiausiai visą tai importuoti į savo lokalią MySQL duomenų bazę.

Šiai užduočiai realizuojama man prireikė tik vienos komandos:

  1. mysql -u<user> -p<pass> -h<host> <dbname> \\
  2. -e 'show tables like "some_table_fragment_%"' \\
  3. | awk '{ if (NR > 1) print $1 }' \\
  4. | xargs mysqldump -u<user> -p<pass> -h<host> <dbname> \\
  5. | sed 's/prefix1/prefix2/g' \\
  6. | mysql -u<user> -p<pass> -hlocalhost <dbname>

Nors komanda iš pirmo žvilgsnio gal būt atrodo sudėtinga, tačiau įsigilinus į atskiras jos dalis matyti, kad nieko sudėtingo nėra. Kad parašyti šią komandą tereikia šį tą žinoti apie mysql, awk, sed komandas. Na ir žinoma kad tas atskiras komandas apjungti, reikia žinoti kaip komandinėje eilutėje veikia išvesties nukreipimas. Tai tiek.

Jei nesinaudoti komandine eilute, tai tikriausiai tektu prisijungti prie kokio tai phpMyAdmin, ten susirast ir sužymėti reikiamas lenteles ir jas eksportuoti. Eksporto failą parsisiuntus į savo kompiuterį, reikėtų juos atsidaryti su kokiu nors teksto redaktoriumi, kuris nenulūžta nuo didelių duomenų kiekių ir jame sukeisti visus lentelių prefiksus. Vėliau sukeistus duomenis reikėtų išsaugoti ir atsidarius lokalų phpMyAdmin juos importuoti. Tai didžiulis ir bereikalingas darbas. Naudojantis komandine eilute visą tai galima padaryti žymiai greičiau.

Komentarai

Anonymous portretas

Dažnai tenka pasinaudoti

Dažnai tenka pasinaudoti tokiais "spagečiais". Pradžioj atrodė WTF, o dabar natūralus darbo procesas :))

Anonymous portretas

Wow! Ačiū už šitą

Wow! Ačiū už šitą eilutę ir sutaupytas mano kančias :D

Skelbti naują komentarą

Šio laukelio turinys bus laikomas privatus ir nerodomas viešai. If you have a Gravatar account, used to display your avatar.
  • Leidžiamos HTML žymės: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linijos ir paragrafai atskiriami automatiškai
  • Web puslapiu adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

Daugiau informacijos apie teksto formatavimą

CAPTCHA
Šis klausimas skirtas patikrinti ar esi žmogus, taip apsisaugant nuo internetinių reklamos robotų.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.
Surinktas turinys