Grrr, apple bloque tout. Le disque Western Digital que je viens d'acheter se monte directement mais n'est visible du finder qu'en lecture seulement !
C'est rageant.
Il y a des solutions tierces telles que paragon-software.com et tuxera.com mais c'est payant :(
J'ai quand même fait quelques explorations et il s'avère qu'on peut bien monter le disque en lecture/écriture sans passer par la caisse :
J'ai lancé une copie de 200Go de données, je verai bien si tout passe.
Note: ça passe sur mon mac mini avec Mac OS 10.6.8 :)
J'entrepose ici mes découvertes linux, bash, python et java que je souhaite partager et mettre de côté...
lundi 29 octobre 2012
jeudi 18 octobre 2012
mercredi 17 octobre 2012
bash, récupérer la n-ième ligne ou les lignes x à y d'un fichier
On peut utiliser awk avec NR (numéro de ligne tout fichier confondus) ou FNR (numéro de ligne du fichier) :
Ou bien avec sed :
En bonus, 10 astuces awk :
http://www.catonmat.net/blog/ten-awk-tips-tricks-and-pitfalls/
Ou bien avec sed :
En bonus, 10 astuces awk :
http://www.catonmat.net/blog/ten-awk-tips-tricks-and-pitfalls/
bash, supprimer les lignes vides d'un fichier
où NF indique le nombre de champs. Si ce n'est pas une ligne vide, le nombre de champs est positif et la commande par défaut de awk est d'afficher.
Ce qui équivaut à :
sed, awk, remove empty lines
mardi 16 octobre 2012
bash, lire ligne par ligne
Pour un fichier :
Et encore mieux, sur la sortie d'une commande :)
Et encore mieux, sur la sortie d'une commande :)
read, line
lundi 15 octobre 2012
awk, un exemple pour bien débuter et comprendre...
awk n'est pas si compliqué que ça lorsque l'on comprend la philosophie...
La commande se décompose de la manière suivante :
BEGIN { CODE_DEBUT } MATCHAGE { CODE } END { CODE_FIN }
- CODE_DEBUT est exécuté au début du traitement du fichier ou flux
- CODE_FIN est exécuté à la fin du traitement du fichier ou flux
- CODE est exécuté sur les lignes du fichier ou flux matchées par les règles de MATCHAGE
Dans l'exemple ci-dessus,
- -F ';' indique que le séparateur de champs est le ;
- les -v permettent de déclarer une variable awk à partir d'une variable bash (pour transmettre les informations)
- NR correspond au numéro de la ligne traitée (on ignore l'entête du fichier avec le test supérieur ou égal à 2)
- /;/ correspond aux lignes qui contiennent un ;
- !/^#/ correspond aux lignes qui ne débutent pas par un dièse
Le programme ci-dessus crée les requêtes à exécuter sur chacune des bases de données pour chacun des enregistrements du fichier file.txt
Comme quoi, on peut démystifier awk ;)
awk, base, for
python, lire et écrire des fichiers xls
Si l'on a des fichiers Excel que l'on souhaite lire ou écrire, on peut utiliser les paquets xlrd (reader) et xlwt (writer).
Voici un petit exemple de ce que l'on peut faire :
La page suivante propose des exemples clairs et rapides pour bien commencer :
http://www.dev-explorer.com/articles/excel-spreadsheets-and-python
Voici un petit exemple de ce que l'on peut faire :
La page suivante propose des exemples clairs et rapides pour bien commencer :
http://www.dev-explorer.com/articles/excel-spreadsheets-and-python
vendredi 12 octobre 2012
bash, savoir si stdout fait référence à un terminal
Pour savoir si la sortie standard pointe sur un terminal, on peut utiliser l'opérateur "-t" en bash.
Dans le cas présenté, on utilisera colordiff pour le rendu sinon diff.
En effet, un pipe avec less (sans l'option -R ou la variable LESS définie à -R) afficherait les caractères d’échappement servant à la colorisation des lignes
Cf une page intéressante : ici
Dans le cas présenté, on utilisera colordiff pour le rendu sinon diff.
En effet, un pipe avec less (sans l'option -R ou la variable LESS définie à -R) afficherait les caractères d’échappement servant à la colorisation des lignes
Cf une page intéressante : ici
sql, gérer les conflits lors des inserts
Lors d'un insert, si la clé primaire existe déjà, il est possible de faire un traitement comme dans l'exemple ci-dessous.
Ici, on tente de peupler la table enveloppesTTS avec des valeurs.
Si l'entrée n'existe pas, on la crée.
Sinon on met à jour un champ de cette table uniquement si sa valeur n'est pas déjà renseigné.
Ici, on tente de peupler la table enveloppesTTS avec des valeurs.
Si l'entrée n'existe pas, on la crée.
Sinon on met à jour un champ de cette table uniquement si sa valeur n'est pas déjà renseigné.
mysql, on duplicate key, insert into, values, select, if, tts
bash, voir autour des occurences avec grep...
Avec l'option :
- A : affiche les lignes après l'occurence trouvée (after)
- B : affiche les lignes avant l'occurence trouvée (before)
- C : affiche les lignes avant et après l'occurence trouvée
grep
jeudi 11 octobre 2012
mercredi 10 octobre 2012
bash, récupérer le nombre de colonnes du terminal
Pour centrer :
Ou afficher un séparateur :
Ou afficher un séparateur :
tput, printf
python, faire en sorte que stdin/stdout lisent et écrivent en binaire
J'ai écrit un petit programme qui s'inspire de cut en python.
La lecture et l'écriture pouvant se faire sur l'entrée/sortie standard (sources ucut), j'avais des problèmes de "'ascii' codec can't decode byte"...
Pour y remédier, j'ai "transformé" les flux standard (mode texte) en flux binaires de la manière suivante :
La lecture et l'écriture pouvant se faire sur l'entrée/sortie standard (sources ucut), j'avais des problèmes de "'ascii' codec can't decode byte"...
Pour y remédier, j'ai "transformé" les flux standard (mode texte) en flux binaires de la manière suivante :
python, binary, os, fileno
bash, vérifier si une variable matche une regexp
On peut facilement vérifier si une donnée contenue dans une variable est au bon format.
Dans l'exemple ci-dessous, on vérifie si le numéro de version fourni est correct.
Dans celui-ci si la valeur contient localhost ou itg
Attention, la regexp n'est pas entre quote ni double-quote.
Dans l'exemple ci-dessous, on vérifie si le numéro de version fourni est correct.
Dans celui-ci si la valeur contient localhost ou itg
Attention, la regexp n'est pas entre quote ni double-quote.
=~, regexp, re
Inscription à :
Articles (Atom)