recherche de filtrage dans une phrase

recherche de filtrage dans une phrase - Shell/Batch - Programmation

Marsh Posté le 21-09-2004 à 11:13:46    

bonjour je cherche à filtrer la fin d'une chaine de caractère contenant un path
 
par ex. "/usr3/projets/toto/titi" doit devenir "toto/titi"
ici mon filtre est "projets/"

Reply

Marsh Posté le 21-09-2004 à 11:13:46   

Reply

Marsh Posté le 21-09-2004 à 13:15:56    

en Batch/DOS, Shell/Linux ?

Reply

Marsh Posté le 21-09-2004 à 13:42:27    

autant pour moi
je suis par defaut en cshell...

Reply

Marsh Posté le 21-09-2004 à 14:05:45    

bah grep "projets/"

Reply

Marsh Posté le 21-09-2004 à 14:13:07    

et après tu fais:
cut -d/ -f3 -f4
avec le grep tu chope les champs qui contiennent projets
et avec cut tu prends le 3em et 4em champ avec / comme séparateur...
elle est pas belle la vie ...

Reply

Marsh Posté le 21-09-2004 à 14:59:40    

oui ce principe devrait m'aller
merciii.....

Reply

Marsh Posté le 22-09-2004 à 14:19:59    

de riennn ......

Reply

Marsh Posté le 23-09-2004 à 05:23:48    

En shell pas c, si $path contient ton path et $filtre ton filtre, il suffit de fait ${path##$filtre}.

Reply

Marsh Posté le 02-11-2004 à 16:49:12    

je reviens un peu la dessus...
parce que je voudrais gerer tous les path qui peuvent se trouver derriere mon filtre...
la proposition de matafan est interessante mais en la testant il me renvoie une substitution incorrecte...
or je ne voie pas cette syntaxe à 2 "#" dans le man sh

Reply

Marsh Posté le 02-11-2004 à 17:02:48    

et avec awk non?

Reply

Marsh Posté le 02-11-2004 à 17:02:48   

Reply

Marsh Posté le 02-11-2004 à 17:10:26    

ben awk je le connais pas mal en csh parce qu'il ne peux pas s'utiliser de façon compliquée mais en sh c'est toute une histoire
donc si ya une solution je suis preneur

Reply

Marsh Posté le 03-11-2004 à 09:23:15    

man awk lol
 
y'a une histoire avec des tableaux je ne sais plus trop quoi, enfin vraiment, le man fait peur mais la partie qui t'interesse est simple.

Reply

Marsh Posté le 03-11-2004 à 10:01:42    

je crois avoir trouvé une solution plus simple en passant par un sed, l'idée m'est venue ce matin très tot...
comme quoi, la nuit porte conseil...

Reply

Marsh Posté le 03-11-2004 à 10:17:42    

ah bah oui sed! lol evidemment
bah man sed alors au lieu de man awk! :D

Reply

Marsh Posté le 03-11-2004 à 10:19:26    

meme pas man
la je l'ai deja utilisé et je vois comen fer...

Reply

Marsh Posté le 03-11-2004 à 10:23:52    

lol meme pas mal! heu man!
envoi ta ligne de commande voir à quoi ca ressemble stp

Reply

Marsh Posté le 03-11-2004 à 10:36:17    

voici le principe
$PWD vaut /usr4/titi/projets/147258/etude
echo $PWD | sed "s/^\/usr4\/titi\/projets\///"
cela renvoie:
147258/etude
 
sed "s -> substitution
/^\/usr4\/titi\/projets\// -> la recherche est "/usr4/titi/projets/" en debut de chaine, les "\"sont la pour parser les "/"
on remplace cette recherche par rien du tout et je ne met pas de "g" à la fin parce que je veut qu'il me le fasse qu'une fois par phrase
 
voilaaaa

Reply

Marsh Posté le 03-11-2004 à 11:13:12    

CQFD :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed