Citation
Raph__
Franchement c'est un exemple de la mort pour un
débutant.
C'est vrai que l'écriture méritait un peu plus d'explications :ange:
Citation
Raph__
Dans le manuel de sed il n'y a pas de détail sur
cette petite subtilité qui permet de définir le
caractère séparateur. En effet, le caractère
suivant le 's' définit le caractère séparateur.
Ex: sed 's#toto#tata#' fichier
Ceci dit,
sed 's/.*\///' fichier
Me semble tout aussi efficace, et plus lisible
Lorsqu'il y a des /, je prefère nettement utiliser un autre caractère, plutôt que d'avoir des \/ partout. C'est, amha, beaucoup plus lisible. Un exemple :
s/^\/[\/]\//\// par rapport à s~^/[^/]/~/~
Le tout est d'avoir un séparateur qui n'est pas contenu dans une chaine de caractère, et qui rend le tout lisible.
s²^.*/\([^/]*\)$²\1²
s² : on utilise ² comme séparateur
^ : début de ligne
.*/ : une chaine de caractère qui se finit par /
\( \) : ce qui est entre ces commandes sera mémorisé
[^/]* : une chaine de caractère ne contenant pas /
$ : fin de ligne
Ce qui donne : Mémorise la chaine de caractère après le dernier /
\1 : la première chaine mémorisée
Traduction : substitue la ligne par la chaine de caractère mémorisée.
C'est vrai que ma commande est plus complexe, mais j'ai déjà eu des surprises en faisant des commandes qui semblaient correctes. Plus de précision permet de faire rapidement des expressions régulières plus justes. Après, c'est une question d'habitude. A force d'en faire, cela est relativement lisible (de part l'utilisation d'autres séparateurs que le /)
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"
Poste le Monday 19 March 2007 10:15:04