Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1146 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell tcsh] [RESOLU] Récupération du path à partir du fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Shell tcsh] [RESOLU] Récupération du path à partir du fichier

n°737324
starius
Posté le 25-05-2004 à 10:42:34  profilanswer
 

Bonjour,
 
J'ai un fichier avec son chemin :
 
/Toto/Exemple/Image/nuage.jpg
 
Je voudrais récupérer :
 
/Toto/Exemple/Image/
 
sans passer par un basename /Toto/Exemple/Image/nuage.jpg puis une autre instruction...
Bref, y'a-t-il une instruction simple qui permette de récupérer le chemin ?
 
Merci à tous !


Message édité par starius le 25-05-2004 à 12:15:03
mood
Publicité
Posté le 25-05-2004 à 10:42:34  profilanswer
 

n°737332
gfive
Posté le 25-05-2004 à 10:46:30  profilanswer
 

sed s/[^/]*$//g
 
et ouala.

n°737378
starius
Posté le 25-05-2004 à 11:03:38  profilanswer
 

Euh, merci, mais tu pourrais préciser ? Le nom du fichier est dans une variable ? Passé via un pipe ?
 
Dslé, je suis pas un pro du shell...

n°737388
gfive
Posté le 25-05-2004 à 11:14:44  profilanswer
 

pardon, argument passé par l'entrée standart
 
En gros : echo Toto/machin/truc/fichier.zob | sed /[^/]*$//
 
Pour la regex : [^/]*$ : un ensemble de caractères qui ne soient pas "/" en nombre indéterminé, à la fin de la chaîne.
 
et s/xxx/yyy/ : remplace xxx par yyy
 
voila.

n°737414
starius
Posté le 25-05-2004 à 11:31:29  profilanswer
 

Merci :-) Mais il me met  
illegal variable name
 
C pas le $ qui lui plait pas ? J'ai essayé avec les " " mais ça marche pas non plus...
 
echo Raph/Script/Temp/log.txt | sed s/[^/]*$//g
 
ou
 
echo Raph/Script/Temp/log.txt | sed "s/[^/]*$//g"
 
Même message d'erreur...Une idée ? :-(

n°737446
gfive
Posté le 25-05-2004 à 11:51:02  profilanswer
 

Chez moi, les 2 marchent, mais je suis sous Cygwin, alors bon, c'est peut être pas super représentatif.
Sinon, il y a sans doute d'autres solutions avec cut, ou tail.

n°737488
oliv5
Pourquoi ? Parce que !
Posté le 25-05-2004 à 12:11:23  profilanswer
 

Hop voila la soluce :)
testé sous SunOS :
 
echo "Raph/Script/Temp/log.txt" | sed 's/[^/]*$//g'
 
Il faut toujours mettre des '' autour des expressions régulières.
 
voilou

n°737490
starius
Posté le 25-05-2004 à 12:13:01  profilanswer
 

Après moults recherches, il existe une commande pour cela :
 
dirname "Toto/fichier.txt"
 
Retourne
 
Toto
 
Merci pour ton aide gfive. N'empêche, j'aurais bien aimé le faire marcher ton sed :-)

n°737534
gfive
Posté le 25-05-2004 à 12:44:35  profilanswer
 

Houla, oui, y'avait dirname, mai sen lisant ton premier post "sans  passer par un basename..." j'ai compris dirname....
 
Pas malin inside! :D

n°740963
matafan
Posté le 27-05-2004 à 04:52:41  profilanswer
 

Puis si t'aimes pas dirname, tu peux faire ça en shell sans passer par sed :

home/nicolas% var=/Toto/Exemple/Image/nuage.jpg
home/nicolas% echo ${var%/*}
/Toto/Exemple/Image


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell tcsh] [RESOLU] Récupération du path à partir du fichier

 

Sujets relatifs
Manipulation de fichier *.txt[bash/shell] Flux d'entrée
[ASP + Access] Lancer un Etat Access à partir d'une page ASPlire / ecrire dans un fichier [resolu]
Probleme de CSS / liens à moitié cliquables [Résolu][Compatibilité entre Moz et IE] Problème de rafraichissement [resolu]
chercher une chaine de caractere dans un fichier textestockage des données dans un fichier XML en C++
"Redirection" en fonction de l'adresse tapée...[toujours pas résolu] 
Plus de sujets relatifs à : [Shell tcsh] [RESOLU] Récupération du path à partir du fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR