bash, lancer une commande à intervalle régulier
2012-06-28 | #bash #commande #intervalle #watch
watch -n 10 date
2012-06-28 | #bash #commande #intervalle #watch
watch -n 10 date
2012-06-26 | #export #mysql
Il est possible d’exporter le contenu d’une table dans un fichier via une requête mysql. Voici la syntaxe : SELECT champ1,champ2 FROM matable INTO OUTFILE 'lefichier.csv' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"';
2012-06-22 | #bash #commande #trap
Il est possible en bash d’appeler des méthodes lorsque de la fin du script est atteinte et ce même s’il y a une erreur. Ci-dessous, le script appellera cleanup_err puis cleanup_ok lorsque false sera atteint. #!/bin/bash set -e function cleanup_err { echo cleanup_err } function cleanup_ok { echo cleanup_ok } trap cleanup_ok EXIT trap cleanup_err ERR false C’est bien pratique pour nettoyer les fichiers et répertoires temporaires :)
2012-06-15 | #emacs
; show the full path and filename in the message area (defun path () (interactive "*") (message "%s" buffer-file-name) ) ; set filename only in the Modeline display (defun short-file-name () "Display the full file path and name in the modeline" (interactive "*") (setq-default mode-line-buffer-identification '("%12b")) ) ; set the full path and filename only in the Modeline display (defun long-file-name () "Display the full file path and name in the modeline" (interactive "*") (setq-default mode-line-buffer-identification '("%S:"(buffer-file-name "%f"))) ) (long-file-name)
2012-05-24 | #awk #bash #bc #commande #paste #sed #tr
Comment sommer des valeurs provenant d’un fichier ou de la sortie standard. Voici plusieurs solutions… A la awk : printf "1\n2\n3\n" | awk '{s+=$1} END {print s}' A la tr : printf "1\n2\n3\n"| tr '\n' '+' | sed -e 's/+$/\n/' | bc A la paste : printf "1\n2\n3\n" | paste -sd+ | bc Moi je choisis la troisième solution. Elle est plus courte, simple et efficace !!
2012-05-24 | #bash #commande #presse papier #xclip
Il est possible de copier un fichier ou la sortie standard dans le presse papier… Il suffit d’utiliser la commande xsel. Exemple : $ cat /etc/fstab | xsel -b La commande xclip un peu similaire permet la même chose… $ sudo apt-get install xclip# Downloads and installs xclip $ xclip -sel clip < ~/.ssh/id_rsa.pub
2012-05-24 | #python #unicode #utf8
$ cat tounicode.py #!/usr/bin/python import re import sys s = sys.argv[1].decode('utf8') print re.sub('\\\\x', '\\u00', re.sub('\'$', '', re.sub('^u\'', '', repr(s)))) $ python tounicode.py "salut beauté" salut beaut\u00e9
Un mauvais commit sur un fichier ? Pas de problème, il peut être inversé :) svn merge -c -[bad_revision] [repository_url] Attention au - devant la mauvaise révision… Ne restera plus qu’à commiter l’inversion
2012-05-04 | #mysqlimport
Le fichier doit porter le nom de la table à l’extension près. Ici les options utilisées sont : --delete pour vider la table avant l’import --fields-terminated-by pour le séparateur entre les champs --lines-terminated-by pour le caractère de fin de ligne (ici DOS/WINDOWS) mysqlimport --fields-terminated-by=\; --lines-terminated-by="\\r\\n" -v --delete -utest -ptest -hlocalhost BASE TABLE.csv
2012-05-04 | #encodage #iso-8859 #python #utf-8
#!/bin/python import sys if len(sys.argv) != 3: print 'usage: python iso8859toutf8.py [infile] [outfile]' sys.exit(0) with open(sys.argv[2], 'w') as fout: with open(sys.argv[1], 'r') as fin: data = fin.read().decode('iso8859') while data: fout.write(data.encode('utf8')) data = fin.read().decode('iso8859')