IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Bash / shell


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 27
    Par défaut Bash / shell
    bien le bonjour.
    Voila je travail actuellement sur un shell (sous debian 5), qui fait tout un tas d'opération, et la je bloque.
    Ma mission si je l'accepte est de copier tout les fichier d'un répertoire en tronquant leur nom : les fichier txt et pdf sont de la forme :
    rtry5456jhll4_h558jhg48hgjk5.txt
    je voudrais récupérer la première partie du nom du fichier jusqu'au '_' pour le renommer et le copier.

    bon j'avoue que linux c'est pas mon fort ^^ en C je peux faire ca rapido mais en shell : p

  2. #2
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par le_fif Voir le message
    bien le bonjour.
    Voila je travail actuellement sur un shell (sous debian 5), qui fait tout un tas d'opération, et la je bloque.
    Ma mission si je l'accepte est de copier tout les fichier d'un répertoire en tronquant leur nom : les fichier txt et pdf sont de la forme :
    rtry5456jhll4_h558jhg48hgjk5.txt
    je voudrais récupérer la première partie du nom du fichier jusqu'au '_' pour le renommer et le copier.

    bon j'avoue que linux c'est pas mon fort ^^ en C je peux faire ca rapido mais en shell : p
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ton_fichier | cut -d "_" -f1

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 27
    Par défaut
    merci pour la réponse mais echo ton_fichier | cut -d "_" -f1
    va prendre la première ligne du fichier txt, or je voudrais changer le nom lui même du fichier.

  4. #4
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par le_fif Voir le message
    merci pour la réponse mais echo ton_fichier | cut -d "_" -f1
    va prendre la première ligne du fichier txt, or je voudrais changer le nom lui même du fichier.
    Negatif. La commande echo prend un arg et affiche cet argument sur le terminal.
    Petite demo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    2401939@ari-31-308-04:/users/nfs/Etu9/2401939$ cat toto_titi_tata.txt 
    toto
    titi
    tata
    2401939@ari-31-308-04:/users/nfs/Etu9/2401939$ echo toto_titi_tata.txt | cut -d "_" -f1
    toto

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 27
    Par défaut
    oui enfin je voulais dire, que la commande va chercher dans le fichier text alors que je voudrais faire l'opération sur le nom du fichier : p

    edit : ca serait plutôt quelque chose comme ca :
    for i in $(ls *.txt)
    do
    mv -v $i ${i%%_*}*_
    done

    (c'est un début d'une vage idée ^^)

  6. #6
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par le_fif Voir le message
    oui enfin je voulais dire, que la commande va chercher dans le fichier text alors que je voudrais faire l'opération sur le nom du fichier : p

    edit : ca serait plutôt quelque chose comme ca :
    for i in $(ls *.txt)
    do
    mv -v $i ${i%%_*}*_
    done

    (c'est un début d'une vage idée ^^)
    Bah, si tu veux tu peux protéger par des backquotes le nom de ton fichier. `nom_du_fichier`. Mais je doute de ce que tu dis qd meme.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par le_fif Voir le message
    oui enfin je voulais dire, que la commande va chercher dans le fichier text alors que je voudrais faire l'opération sur le nom du fichier : p

    edit : ca serait plutôt quelque chose comme ca :
    for i in $(ls *.txt)
    do
    mv -v $i ${i%%_*}*_
    done

    (c'est un début d'une vage idée ^^)
    tout avant le premier _
    tout après le premier _

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 27
    Par défaut
    yop (dsl de répondre tard ^^' )

    en fait j'essaye de faire un bash qui dans un repertoire, me transforme des fichiers sous la forme f4f6z4f65ze4f6_f4ze56f4fze6.txt et f4f6z4f65ze4f6_f4ze56f4fze6.pdf en :
    f4f6z4f65ze4f6.txt
    et f4f6z4f65ze4f6.pdf

    j'ai essayé quelque commande avec mv et rename mais, je n'arrive pas à le faire totalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Qualimétrie Bash Shell
    Par hervia dans le forum Qualimétrie
    Réponses: 0
    Dernier message: 13/11/2013, 12h31
  2. [bash/shell] Exécuter un fichier .exe
    Par Boujoute dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 08/06/2011, 07h21
  3. Questions sur le shell Bash
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 07/09/2006, 18h19
  4. Utiliser les commandes du shell bash
    Par man in the hill dans le forum Linux
    Réponses: 3
    Dernier message: 20/07/2006, 10h43
  5. Bash / shell size demarrage
    Par niconeo dans le forum Linux
    Réponses: 4
    Dernier message: 03/05/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo