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

Shell et commandes POSIX Discussion :

Récupération d'un chemin


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut Récupération d'un chemin
    Bonjour,

    Je dois supprimer dans une arborescence les sous repertoires contenant le mot PROJET_ZZ.

    En premiere partie, j'ai un resultat avec tous les chemins qui possédent le nom PROJET_ZZ dans un fichier (voir ci-dessous).

    /COMPTA/1526/PROJET_ZZ/ORDI1
    /COMPTA/1526/PROJET_ZZ
    /COMPT2/1526/PROJET_ZZ/ORDI1/PC1/emulation.txt
    /COMPT2/1589/TOTAL/PROJET_ZZ/ORDI1/PC1/emulation.txt

    Pour ne pas m'embêter et avoir des erreurs, je souhaiterai simplement arriver à récupérer les lignes contenant le mot PROJET_ZZ, mais seulement par exemple :
    /COMPTA/1526/PROJET_ZZ
    ou /COMPT2/1589/TOTAL/PROJET_ZZ

    sans récupérer la suite des sous répertoires. Comme cela, je réalise un rm -rf directement sur cette racine, sans tenir compte des sous répertoires.

    Auriez vous la bonne formule car je séche... en sachant que PROJET_ZZ peut se trouver à n'importe quel endroit dans l'arborescence.

    Suis je clair ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par vince2005 Voir le message
    Bonjour,

    Je dois supprimer dans une arborescence les sous repertoires contenant le mot PROJET_ZZ.

    En premiere partie, j'ai un resultat avec tous les chemins qui possédent le nom PROJET_ZZ dans un fichier (voir ci-dessous).
    Comment l'as-tu obtenu?

    Si c'est avec un find, il suffit de lui passer l'option '-exec rm'.

    Une première passe pour vérifier qu'il n'y en a pas trop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    find /COMPT* -type d -name 'PROJET_ZZ' -print
    # ou
    find /COMPT* -type d -name '*PROJET_ZZ*' -print;
    Puis le bazooka:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /COMPT* -type d -name 'PROJET_ZZ' -exec rm -rf {} \;
    Suis je clair ?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    Le problème de cette solution, c'est qu'il supprime le chemin complet donc la racine également et c’est plutôt ennuyeux . Ma première solution me plaisait bien mais je n'arrive pas à l'appliquer.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ cat fichier
    /COMPTA/1526/PROJET_ZZ/ORDI1
    /COMPTA/1526/PROJET_ZZ
    /COMPT2/1526/PROJET_ZZ/ORDI1/PC1/emulation.txt
    /COMPT2/1589/TOTAL/PROJET_ZZ/ORDI1/PC1/emulation.txt
    $
    $ sed 's/PROJET_ZZ.*$/PROJET_ZZ/' fichier | sort -u
    /COMPT2/1526/PROJET_ZZ
    /COMPT2/1589/TOTAL/PROJET_ZZ
    /COMPTA/1526/PROJET_ZZ

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par vince2005 Voir le message
    Le problème de cette solution, c'est qu'il supprime le chemin complet donc la racine également et c’est plutôt ennuyeux . Ma première solution me plaisait bien mais je n'arrive pas à l'appliquer.
    je ne comprends pas ce que tu veux dire.
    Que supprime-t-il que tu ne voudrais pas?
    Plutôt que d'utiliser les termes généraux 'chemin complet' et 'racine' dont je ne sais pas bien à quoi ils font référence, peux-tu citer précisément ce que tu ne veux pas qu'il supprime dans l'exemple que tu as donné?
    Si celui-ci n'est pas complet, peux-tu donner un autre exemple plus complet où apparaît le problème?

    [EDIT]
    Je me demande si je n'ai pas compris!
    Veux-tu dire que tu veux supprimer le contenu de tous les répertoires 'PROJET_ZZ' sans supprimer ces répertoires?

    Si oui, je propose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /COMPT* -type d -name 'PROJET_ZZ' -exec sh -c "echo {}/*" \;
    avec 'rm -rf' à la place de 'echo' si c'est bon!

    Attention: ça ne supprime pas les {sous-répertoires et fichiers} dont le nom commence par un '.' (comme '.svn') situés directement sous les répertoires 'PROJET_ZZ'

Discussions similaires

  1. Récupération d'un chemin absolu
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2010, 15h39
  2. Récupération d'un chemin d'un fichier
    Par plop03 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 13/08/2009, 16h49
  3. Problème de récupération d'un chemin absolu
    Par chebmo1986 dans le forum Langage
    Réponses: 1
    Dernier message: 29/04/2009, 16h47
  4. Récupération complette du chemin d'un fichier
    Par sebac dans le forum Access
    Réponses: 7
    Dernier message: 22/05/2007, 15h39

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