cmd simmliaire à cut ?? [Perl] - Perl - Programmation
Marsh Posté le 28-07-2003 à 18:37:40
je ne connais pas la commande cut
par exemple si tu a a/b/c/d/ tu veux k'il te retourne a/b/c ou a/b/c/d ?
Et tu peu avoir autre chose que / comme separateur?
Marsh Posté le 28-07-2003 à 18:52:52
vfqs a écrit : Slt all, |
si je ne m'abuse, ta commande devrait plutot te renvoyer "tata" qui est le 2e champ de l'expression delimitée par des "/".
L'equivalent de cut peut se faire par un split (cette cmd transforme une chaine en tableau, tu prends ensuite le champ qui t'interesse)
Marsh Posté le 29-07-2003 à 09:52:49
sinon avec un regex c'est assez vite fait:
Code :
|
Marsh Posté le 29-07-2003 à 10:33:34
Muchacho: Nono via la cmd cut j'obtiens bien le résultat que j'avance.
Anapajari: C a l'air pas mal ton bout de code. Je vais essayer de suite.
Marsh Posté le 29-07-2003 à 11:02:50
Anapajari a écrit : sinon avec un regex c'est assez vite fait:
|
Tu peux m'expliquer ce que fait la partie en bleu ?
s/(.*?)\/([^\/]*)$/$1/
Marsh Posté le 29-07-2003 à 11:19:47
([^\/]*)$ on décompose:
Code :
|
Donc en fait avec ce motif je prends "tous les caractères qui ne sont pas des / et qui terminent $texte.
Du coup /(.*?)\/([^\/]*)$/ nous donne:
tout et n'importe quoi suivi d'un / suivi de plusieurs caracteres qui ne sont pas des / et qui terminent la chaine.
Huumum pas sur d'avoir été très clair moi!
Marsh Posté le 29-07-2003 à 14:23:25
[^\/] -> tous les caractères qui ne sont pas des /
En fait c'est cette partie que je pigeais po.
je pensais que "^" indiquer en debut de ligne et non une négation comme "!".
Ce sont les crochets qui influe sur ^ ?
Marsh Posté le 29-07-2003 à 14:28:30
un grand merci pour ce code. Cela m'évitera de rajouter du shell dans mon code.
Marsh Posté le 28-07-2003 à 18:17:42
Slt all,
Y'a-t-il un code perl similaire à ce qui suit:
cut -d/ -f-2 fichier
Ex: toto/tata/titi/tete
Resultat => toto/tata/titi
En gros je veux pas le dernière chaine.
merci d'avance