#1 Le 16/03/2007, à 14:44
- madrippeur
Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
Bonjour bonjour
Encore une petite demande de ma part pour de l'aide sur un script
je ne vais pas vous demander de me l'écrire je l'ai presque entiérement terminé, mais le soucis c'est qu'il me manque quelque chose que je n'arrive pas à résoudre.
mon probléme :
il faut que je soit capable de faire une archive zip qui se nomme de la même façon qu'un fichier qui existe à un endroit précis. Le probléme de ce fichier c'est que son nom changera tres regulierement et je ne peut donc le retrouver que grace a son extention. Il me faudrai donc une façon de récuperer son nom pour dire à zip de compresser avec ce nom.
un ptit éxemple car j'arrive à peine à me comprendre :
le fichier que je cherche s'appelle : TRUCvsMACHIN31032007.fini
mon zip devra s'appeler : TRUCvsMACHIN31032007.zip
Je sais zipper sans probléme des fichier en ligne de commande, mais faire en sorte qu'il porte le meme nom que ce fichier, je ne sais pas faire.
Est ce possible d'enregistrer le nom du fichier ayant l'extention .fini dans une sorte de variable et lors de la compression en zip de lui mettre cette variable ennom? cela dépasse un peu mes compétences.
Je remercie d'avance les personnes qui se donneront du mal pour moi
Dernière modification par madrippeur (Le 16/03/2007, à 16:43)
Hors ligne
#2 Le 16/03/2007, à 15:26
- madrippeur
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
Je continu de rechercher, mais j'ai toujours besoin de votre aide (depuis cematin je recherche comme un malade )
Je parviens maintenant à enregistrer le nom de ce fichier dans une variable avec ce morceau de code :
cd /home/x/y && nom= ls *.fini
Cependant j'obtiens dans la variable l'extention dont je n'ai absolument pas besoin
Ensuite pour la creation du fichier zip je tente le coup avec :
cd /home/x/y && zip $nom.zip
mais le fichier s'appelle bizarrement : .zip
Hors ligne
#3 Le 16/03/2007, à 15:32
- ch0c0bn
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
tu peux tenter ça (ça part du principe que le fichier a l'extension .fini et qu'il est le seul dans le dossier) :
nom_fichier=$(ls /ton/dossier/*.fini|sed -e "s/.fini$//g")
tu récupères dans la variable nom_fichier le nom sans le ".fini" .
Edit : explication plus détaillée : la commande ls liste tous les fichiers qui finissent par .fini et la commande sed remplace .fini par rien (et les deux commande sont liées par un "pipe" )
Dernière modification par ch0c0bn (Le 16/03/2007, à 15:34)
Hors ligne
#4 Le 16/03/2007, à 15:35
- phlinux
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
NomFic=TRUCvsMACHIN31032007.fini
NomFicZ=echo $(echo ${NomFic}| cut -d. -f1).zip
Ca devrait l'faire ....
Ubuntu - Precise Pangolin 64bits
ATI Radeon HD5670
Hors ligne
#5 Le 16/03/2007, à 15:44
- madrippeur
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
J'ai un gros probleme avec chocobn .... il vient de me donner une faim pas possible !
J'ai pris la solution de chocobn car elle a fonctionné du premier coup ! Je suis super content, je pense pouvoir tester mon script dans sa globalité dans l'aprés midi
Je vous remercie tous les deux, et j'espére ne pas trop vous avoir déranger. Un gros résolu vas être mis avec joie
Hors ligne
#6 Le 16/03/2007, à 22:46
- Bollzy
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
Petite remarque concernant les dates dans les noms de fichiers, il est bien plus intéressant d'utiliser la forme AAAAMMJJ que la forme JJMMAAAA car la première forme sera classée par ordre chronologique par l'ordinateur car cet ordre chronologique est identique à l'ordre alphanumérique de classement des fichiers.
Comprenez qu'il vous suffira de trier les fichiers par nom pour les avoir classés par dates. Bien entendu, cela n'est valable que si cette date est le première élément significatif du nom du fichier ("Photos20060315 - Vacances", "20060315 - Photos de vacances").
En espérant avoir été clair
Dernière modification par Bollzy (Le 16/03/2007, à 22:48)
De la bonne manière de poser les questions
(Ou comment poser les questions de manière intelligente)
Hors ligne
#7 Le 20/03/2007, à 11:42
- madrippeur
Re : Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !
Ha yes tu est tout a fait clair Et c'est forcément une info utile.
Je regarde ce qui sera le plus interessant pour moi.
merci encore
Hors ligne