Tout est dans le titre ! regexr est un éditeur/testeur d'expressions régulières en ligne. On peut placer le texte que l'on veut pour tester, les principales options sont gérées, enfin bref que du bon ! Y'a même moyen d'en avoir une version off-line, mais il existe beaucoup d'autres outils équivalents dans ce cas.
Des pingouins et des hommes
mardi 11 novembre 2008
Un autre uniligne en Ruby
Par jb le mardi 11 novembre 2008, 21:44
Renommer les fichiers qui composent un répertoire et souvent une galère à la main. J'ai un script qui me permet de le faire, mais je voulais voir si on pouvait le faire en une ligne de Ruby, la réponse est là :
ruby -e 'Dir.glob("*.txt").each{ |f| File.rename(f,f.gsub(/^(\d\d) /,%q[\1 - ]))}
L'option -e permet de faire exécuter la chaîne de caractères par l'interpréteur ruby. Pour éviter que bash n'interprète les instructions on les places entre apostrophes (ça permet de garder les guillemets pour la suite du programme).
- La méthode
globde la classeDirliste tous les fichiers correspondant au motif placé en argument (ici, tous les fichiers en.txt) - Un bloc est utilisé avec la méthode
each, ce bloc est délimité par les accolades, la variablefprendra le nom d'un des fichiers à chaque itération. - La méthode
renamede la classeFileest utilisée pour renommer le fichier. - Le nouveau nom du fichier est construit à partir d'un expression régulière avec la méthode
gsub. Les apostrophes ne pouvant pas être utilisés, on est obligé de passer par une notation%q[...]
Pour éviter de planter des fichiers, il est judicieux de tester la regexp avec un puts :
ruby -e 'Dir.glob("*.txt").each{ |f| puts f+"->"+f.gsub(/^(\d\d) /,%q[\1 - ])}'
edit du 13/11
glob peut être remplacé par [...]
ruby -e 'Dir["*.txt"].each{ |f| puts f+"->"+f.gsub(/^(\d\d) /,%q[\1 - ])}'
c'est valable pour le puts ou pour le File.rename.
De FAT vers NTFS
Par jb le mardi 11 novembre 2008, 14:04
Maintenant (bon c'est pas du très nouveau...) que Ubuntu supporte bien le format NTFS, on va pouvoir convertir tous les lecteurs en NTFS. La commande est simple convert d: /fs:ntfs pour le lecteur d: (à changer bien sur en fonction du lecteur !!!). En plus, si le lecteur n'est pas accessible (fichiers encore ouverts, ...) la conversion peut être programmée au prochain démarrage de Windows.
lundi 20 octobre 2008
Uniligne en Ruby
Par jb le lundi 20 octobre 2008, 15:32
Mes listings d'étudiants me sont fournis au format suivant
... DUPONT,PAUL DURAND,PIERRE ...
La présentation "tout en majuscules" ne me plaît pas beaucoup ; je préfère une majuscule en début de nom et en début de prénom. Plutôt que m'amuser à tout faire à la main, j'ai écrit un petit uniligne qui fait tout d'un coup.
Pour obtenir un comportement uniligne en ruby, on utilise plusieurs options sur la ligne de commande (l'option -e est obligatoire). Les principales options sont les suivantes :
-epermet de créer un uniligne, en spécifiant les instructions depuis la ligne de commande (les instructions sont placées entre apostrophes pour éviter que le shell ne les interprète).-nRuby place les instructions dans une boucle (while gets ... end) en utilisant le fichier (dont le nom et placé en argument sur la ligne de commande) comme source.-pest identique à-navec en plus un affichage de$_(la ligne lue) à la fin de la boucle.
L'uniligne obtenue est le suivant :
ruby -ne 'puts $_.split(",").each{|n| n.capitalize!}.join(",") ' TD.csv > TDmaj.csv
La ligne lue (dans le fichier TD.csv) est découpée en utilisant split puis une boucle each permet de traiter chaque élément avec capitalize! pour passer que la première lettre en majuscule. Le contenu du tableau (issue du each) et transformé en une chaîne en utilisant join avec la virgule comme caractère de jointure. Une redirection finale (> TDmaj.csv) envoie tout ça dans un nouveau fichier.
mardi 23 septembre 2008
Le lien du développeur
Par jb le mardi 23 septembre 2008, 14:03
Le site gotAPI regroupe la majorité des API des langages usuels. Le site est pratique et paramétrable via des onglets pour choisir les langages qu'on utilisent. L'intérêt de la manip' c'est qu'on ne garde qu'un onglet sous Firefox, ça évite d'avoir une douzaine d'onglets d'ouverts quand on travaille sur plusieurs langages en même temps.
jeudi 8 novembre 2007
Liste des polices LaTeX
Par jb le jeudi 8 novembre 2007, 15:54
Le choix des polices sous LaTeX est toujours délicat car il est nécessaire de recompiler le document pour voir le résultat. De plus les polices n'ont pas vraiment des noms très explicites. Sans vraiment le chercher, je suis tombé sur un site qui référence les différentes polices LaTeX (livrées en standard ou à installer) : Font Catalogue
Les polices peut être triées par type (serif[1], sans serif, avec support des mathématiques,...)
dimanche 30 septembre 2007
Installation de Piklab sous ubuntu
Par jb le dimanche 30 septembre 2007, 14:43
Les microcontrôleurs Microchip PIC sont beaucoup utilisés par l'amateur d'électronique (avec les Atmel AVR) . La suite de développement fournie par Microchip est très efficace mais ne fonctionne pas sous Linux et ne propose pas de compilateur C en standard. Nous allons faire d'une pierre deux coups en installant Piklab qui permet de compiler (en assembleur mais aussi en C via SDCC), simuler et programmer des PIC sous Ubuntu.
vendredi 7 septembre 2007
Le paquet du mois...
Par jb le vendredi 7 septembre 2007, 15:32
Un titre un peu gros pour attirer le regard... Un paquet méconnu d'Ubuntu est gtklp, il est le complément idéal d'Adobe Reader. Il est présent en standard sur Ubuntu, donc pour l'installer :
sudo aptitude install gtklp
Ensuite, dans Acrobat Reader, choisir une imprimante custom et remplir la ligne avec /usr/bin/gtklp. gtklp va alors intercepter toutes les impressions et proposer de nombreuses options comme 2 pages par feuille, contrôle du recto-verso pour les imprimantes qui le supportent, colorimétrie, copies groupées, bandeaux, filigrane...
vendredi 31 août 2007
vim et Latex
Par jb le vendredi 31 août 2007, 13:58
Le plugin Latex pour vim pose quelque difficulté pour les francophones : des accents sont remplacés par certains raccourcis.
Dans le fichier ~/.vim/ftplugin/tex.vim (le créer s'il n'existe pas), il faut ajouter les lignes suivantes :
imap <C-b> <Plug>Tex_MathBF imap <C-c> <Plug>Tex_MathCal imap <C-l> <Plug>Tex_LeftRight imap <buffer> <leader>it <Plug>Tex_InsertItemOnThisLine
Les trois premières lignes remplacent les commandes ALT+B,ALT+C et ALT+L par CTRL+B,CTRL+C et CTRL+L. pour mémoire, leurs fonctions sont les suivantes :
ALT+Bplace le caractère précédent dans une commande\mathbf{}ALT+Cplace le caractère précedent dans \mathcal{}, s'il n'y a pas de caractères, place une commande\cite{}ALT+Lpropose plusieurs fonctions :- si le caractère précédent est
(,[,|,{ou<elle complète l'expression par le caractère de fermeture associé ; - précédée de
qelle insère le bloc\lefteqn{<++>}<++>; - dans tous les autres cas, elle place une commande
\label{<++>}<++>.
- si le caractère précédent est
La dernière ligne permet l'auto complétion de la commande \item, il suffit de taper \it pour que la commande \item soit insérée.
Tous les accents sont alors possibles sans passer par les commandes Latex \',...
jeudi 30 août 2007
Dictionnaire français avec vim
Par jb le jeudi 30 août 2007, 11:13
Suite à une réinstallation d'Ubuntu, le dictionnaire français (UTF-8) de vim était introuvable, conduisant à l'avertissement suivant lors de l'exécution de vim (ou gvim)
Alerte: Liste de mots "fr.utf-8.spl" ou "fr.ascii.spl" introuvable
Bien entendu, il n'y avait plus de correction orthographique...
Pour installer le dictionnaire français, il suffit de se placer dans le répertoire /usr/share/vim/vim70/spell puis de télécharger les deux fichiers avec les commandes :
sudo wget http://ftp.vim.org/pub/vim/runtime/spell/fr.utf-8.sug sudo wget http://ftp.vim.org/pub/vim/runtime/spell/fr.utf-8.spl
mardi 14 août 2007
Compilation automatisée de fichier Latex
Par jb le mardi 14 août 2007, 14:17
La compilation de document écrit avec Latex devient vite compliquée si différents types de fichiers entrent en jeu. Un script ou un Makefile permet de simplifier cette tâche.
vendredi 10 août 2007
Installation du drivers Wifi pour un chipset BCM4306
Par jb le vendredi 10 août 2007, 19:32
Mon Dell Latitude est équipé d'un chipset BCM4306 pour le wifi. Par défaut ce chipset n'est pas géré par Ubuntu Feisty Fawn, mais l'installation est très simple.
Il faut commencer par installer le paquet bcm43xx-fwcutter. Une erreur est provoqué lors du téléchargement du fichier wl_apsta.o.
L'installation va se finir "à la main" :
- Télécharger le fichier wl_apsta.o
- Extraire le driver de la carte :
sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta.o - Mettre à jour le noyau avec
sudo bcm43xx-fwcutter -w /lib/firmware/2.6.XX-YY wl_apsta.ooù2.6.XX-YYest le répertoire qui correspond au noyau utilisé.
A partir de maintenant le wifi fonctionne, par exemple, avec Network Manager, éventuellement rebooter le système.
Cette manipulation devra être réitérée à chaque mise à jour du noyau.
mercredi 13 juin 2007
Manipulation de tags mp3 avec Perl, Ruby et Python
Par jb le mercredi 13 juin 2007, 08:49
Pour les petits scripts de quelques lignes, trois langages se partagent le terrain : Perl, Python et Ruby. Le problème du jour est la modification de tags ID3 ainsi que le renomage de fichiers.
vendredi 8 juin 2007
Désintaller Samba
Par jb le vendredi 8 juin 2007, 13:48
Après une mise à jour d'Ubuntu, Samba a décidé de mettre son bazard... Même plus moyen de le supprimer ! J'obtenais l'erreur E: Sub-process /usr/bin/dpkg returned an error code (1). Pour pouvoir désinstaller Samba, j'ai du aller dans /etc/rc2.d et détruire (sudo rm) le fichier K09samba ( ce fichier peut porter un autre nom). Ensuite, j'ai pu désinstaller Samba avec aptitude puis remettre mon système à jour.
mercredi 2 mai 2007
Supprimer les ^M dans des fichiers texte
Par jb le mercredi 2 mai 2007, 09:42
Les fichiers texte ayant transité par d'autres systèmes d'exploitations sont souvent légèrement modifiés ; les caractères de fin de lignes ne sont pas les mêmes. Par exemple, lors d'une transitions Windows vers Linux, on voit apparaitre des ^M à la fin de chaque ligne.
La commande suivante sous vi et tous ses clones (donc vim, gvim,...) permet de supprimer ces caractères :
:%s/^M//g
L'opération réalise un rechercher-remplacer (%s) en utilisant le motif ^M comme recherche et rien comme motif de remplacement et ce sur tout le fichier (options g à la fin de la commande). Le ^M s'obtient en tapant CTRL+V puis CTRL+M, il ne faut pas utiliser le caractère ^ puis la lettre M !
mardi 1 mai 2007
Griser une ligne sur deux dans OpenOffice Calc
Par jb le mardi 1 mai 2007, 18:14
Sur de grands listings, il est plus agréable pour la lecture de colorer une ligne sur deux (ou plus) en couleur. Cette manœuvre est assez facile a réaliser sous Open Office Calc. Il faut commencer par définir un (ou plusieurs) style(s) de remplissage. La touche F11 fait apparaitre la fenêtre "Styles et formatages". Un clic droit dans cette boite de dialogue permet de créer un nouveau style. Lui attribuer un nom (par ex. Gris) et modifier ses propriétés, notamment l'arrière plan en gris.
Il faut maintenant sélectionner une cellule (ici la cellule A1) et dans le menu Format, cliquer sur Formatage conditionnel..., dans la boite dialogue qui apparait placer la formule suivante :
SI(MOD(CELLULE("ROW";$A1);2)<>1)
et choisir l'option Formule est (en cliquant sur Valeur est) et choisir le style de cellule crée si dessus (Gris dans notre exemple).
Sélectionner la cellule (CTRL+C) puis sélectionner les cellules, faire un collage spécial (CTRL+MAJ+V) et ne choisir que la case Format.
Si tout c'est bien passé, une ligne sur deux a pris le style Gris.
jeudi 15 juin 2006
Oh le joli poster !
Par jb le jeudi 15 juin 2006, 22:08
O'Reilly propose gratuitement un poster chronologique de tous les langages (ici). Le problème c'est que ce poster fait un format de poster ;-) . Pour l'imprimer sur une imprimante normale, il faut le découper en petits morceaux. Dans un premier temps j'ai pensé que dans le package pdfjam j'allais trouver ma vie. Pas d'outils pour découper des pdf, seulement pour en regrouper :-(
Par contre le package poster permet de créer des posters à partir de fichiers .ps. Donc à partir du fichier original, il suffit de faire :
pdf2ps -sDEVICE=epswrite prog_lang_poster.pdf poster -s1 prog_lang_poster.ps > poster_parties.ps ps2pdf13 -dPDFSETTINGS=/prepress poster_parties.ps
Pour imprimer la dernière partie n'est pas obligatoire car les fichiers .ps s'impriment très bien sous Linux ! Et voilou...