[Awk] : parser un nom de fichier

: parser un nom de fichier [Awk] - Shell/Batch - Programmation

Marsh Posté le 30-04-2005 à 11:04:43    

Salut !
 
Je souhaite parser le nom de mon script shell (argument $0) qui a la forme :
 
./chemin/de/mon/fichier.ext
 
pour en obtenir uniquement la chaine "fichier.ext".
 
Je faisais :
 
FIC_LOG=`echo $0 | awk '{ print substr($0,index($0,"/" )+1, index($0,".sh" ) -  
(index($0,"/" )+1) ) }'`
 
 
tout allait bien quand j'appellais mon script comme suit :
 
 
./monscript.sh
 
 
mais comme désormais je l'appelle comme ça :
 
 
./scripts/monscript.sh
 
 
ça ne marche plus ! (puisqu'un nouveau slash est venu se placer dans le  
chemin).
 
 
Je cherchais une astuce pour parcourir $0 à l'envers en disant : "tu t'arrêtes  
au premier slash trouvé". Y a t-il un autre moyen que de faire un for ???
 
Comment faire ?
 
Merci de votre aide

Reply

Marsh Posté le 30-04-2005 à 11:04:43   

Reply

Marsh Posté le 02-05-2005 à 18:56:30    

man basename
 
Edit : et puis, si tu n'aimes pas basename, tu peux aussi faire ca simplement en shell avec FIC_LOG=${0##*/}. Pas besoin de awk.


Message édité par matafan le 02-05-2005 à 19:00:04
Reply

Sujets relatifs:

Leave a Replay

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