Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/03/2007, à 14:44

madrippeur

Récupérer le nom d'un fichier en bash [RESOLU] merci a vous !

Bonjour bonjour smile
Encore une petite demande de ma part pour de l'aide sur un script smile

je ne vais pas vous demander de me l'écrire smile 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 smile

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 smile )

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 sad

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 sad

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 ! lol
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 smile

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 wink

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 wink

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 smile Et c'est forcément une info utile.
Je regarde ce qui sera le plus interessant pour moi.

merci encore smile

Hors ligne