[Quicktip] aktuellen git branch im bash prompt anzeigen

Hier mal wieder etwas nettes für die Mac bzw. Linux User unter euch. Mittels der hier beschriebenen Methode könnt ihr euch einfach – sofern ihr euch innerhalb eines mit git versionierten Ordners befindet – den aktuell ausgecheckten Branch anzeigen lassen. Die hier verwendete Methode gilt für die bash. Mit kleinen Abwandlungen sollte es aber auch auf anderen Shells laufen.

In eurem Homeverzeichnis – mittels eines einfachem “cd” gelangt ihr dort hin – müsst ihr nur die Datei “.bash_profile” bzw. unter Linux die “.bash_rc” editieren und folgende Zeile einfügen (es handelt sich um eine Zeile!):

export PS1='\[\033[01;32m\]\u\[\033[01;34m\] \w\[\033[31m\]$(git branch 2>/dev/null|cut -f2 -d\* -s) \[\033[01;34m\]$\[\033[00m\] '

Falls ein “export PS1” bereits vorhanden ist, müsst ihr es ersetzen bzw. beide zusammenführen.

Was passiert? Durch die Formatierung wird das aktuelle Verzeichnis in grün angezeigt, ein evtl. anzeigbarer Branchname in rot. Die Farbe kommt von den Zahlenwerten in den eckigen Klammern. Wenn ihr keine farblichen Veränderungen wünscht, dann lasst die entsprechenden Codes einfach weg.

Falls ihr bereits eigene Formatierungen für die PS1 vorgenommen habt, findet ihr hier den eigentlich relevanten Teil für die Ausgabe des git branches:

$(git branch 2>/dev/null|cut -f2 -d\* -s) 

Nachdem ihr die bash_profile bzw. bash_rc editiert habt, speichert alles ab, schließt das Konsolenfenster und öffnet es dann erneut. Und schon sind die Änderungen sichtbar.

via asemanfar.com

[Quicktip] MySQL Query-Ergebnis per Console in eine CSV Datei exportieren

Mit phpmyadmin und Konsorten ist es kein Problem, Ergebnisse von SQL Abfragen in CSV-Dateien zu exportieren. Problematisch wird es allerdings, wenn man eine aufwändigere Abfrage hat, die den php Timeout provoziert, oder aber man keinen Web-Client zu Verfügung hat. Dann greift man zur Konsolenversion von MySQL – welche diesen Export nicht direkt anbietet. Mittels ein bisschen Bash-Magie kann man sich aber behelfen:

mysql --database=database --execute="select a from b where a>1;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > filename.csv

Was passiert? Die Abfrage wird ausgeführt und die Ergebnisse werden in Textform ausgegeben. Mittels Pipe wird die Ausgabe an “sed” weitergegeben, welches diese in das CSV Format umwandelt und anschließend in die Datei “filename.csv” schreibt.

Via snipplr.com