Opérations sur les chaine dans un shell

Mon problème est le suivant : comment récupérer la dernière ligne d’un fichier, qui contient une date dans un certain format, et la transformer en un autre format que je vais pouvoir exploiter. Le tout pour un script linux bien évidemment.

lastline=`tail monfichier.log` -n1
# date présente : dd/mm/yyyy hh/ii/ss . A changer en yyyy-mm-dd hh:ii:ss
gooddate=`echo "$lastline"|sed "s/\([0-9]{2}\/[0-9]{2}\/[0-9]{4} [0-9]{2}\/[0-9]{2}\/[0-9]{2})\)//"`

Renommer des fichiers en masse

Pour changer en masse l’extension des fichiers. par exemple, .html en .php
list=ls -1 *.html
for i in list; do mv « $i » « ${i%.html}.php »

Changer un préfixe :
list=ls -1 hello*
for i in list; do mv « $i » « cocorico_${i#hello_} »

${variable%pattern} : supprime le pattern (en regexp) de la fin de la variable.
${variable#pattern} : la meme chose mais pour le début.

Quelques astuces de navigations (et plus)

Très simple de jongler avec plusieurs fichiers ouverts !

Ce qui est très vite devenu indispensable :

* Couper la fenetre en deux horizontalement et ouvrir foo.bar au dessus :
:new foo.bar

* Couper la fenetre en deux verticalement et ouvrir foo.bar dans la partie de gauche:
:vnew foo.bar

mais ce que j’ignorais jusqu’à il y a quelques jours :
* ouvrir dans une nouvelle fenetre, mais cette fois en bas où à droite.
:bel vnew foo.bar
:bel new foo.bar

Intervertir deux fenêtres :
CTRL-W CTRL-X

Faire « tourner » les fenetres (toutes sont décalées d’une fenetre, et la dernière prend la place de la première) :
CTRL-W CTRL-R

Insérer le résultat d’une commande shell dans vim sans le quitter ? Voici un exemple pour « ls » :

:r!ls

Pendant que j’y suis, je note aussi ça là : rechercher remplacer, entre la ligne actuelle (.) et la fermeture de la balise <body>, les balises <br>, et les remplacer par <br/>. le g (comme global) pour dire « ok si plusieurs fois par ligne », et le c comme « cautious » pour demander confirmation à chaque fois.

:.,/</body>/s,<br>,<br/>,gc

Un dernier pour la route !!

Pour faire en sorte que :make « teste » le script php.
:set makeprg=php -l %
:set errorformat=%m in %f on line %l

Explication du « bien inconnu » trunk/branches/tags

J’utilise depuis quelques temps maintenant, et à force de m’en servir, de chercher un peu partout comment bien organiser les dépots, je commence enfin, à peu près, à savoir ce qu’il faut faire. J’ai bien dit à peu près.

Je vais donc essayer ici d’être le plus clair possible sur le suivi que permet l’utilisation d’un dépot organisé en « trunk/branches/tags ».

Petite parenthèse pour les anglophobes ;
__trunk__ signifie « tronc », comme dans tronc d’arbre.
__branches__ signifie « branches », comme dans « branches d’arbres ».
__tags__ signifie « balise ».

Comme cela ne sert pas à grand chose de savoir tout ça, je vais maintenant refermer cette parenthèse.

Si on fait quelques recherches sur Internet à propos des [SCM|tag:Sofware Configuration Management, ou gestionnaire de configuration logicielle]