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 GNU Discussion :

[csh] Diff entre fichiers d'un répertoire et dans un fichier txt


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    technicien informatique
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut [csh] Diff entre fichiers d'un répertoire et dans un fichier txt
    Bonjour,

    Dans un script en csh je voudrais pouvoir comparer le contenu d'un repertoire et celui d'un fichier.

    Je m'explique, j'ai un repertoire avec plusieurs data script à l'intérieur et dans ce même repertoire j'ai un fichier .txt qui liste l'ensemble des datascripts.
    Je voudrais m'assuere que les data script présent dans le répertoire soit présent dans le fichier .txt et inversement.
    Si ce n'est pas le cas je voudrais afficher un warning à valider.

    Merci pour votre aide?

    Bylbo

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    Bonjour,

    - tu sais le faire "à la main" ? alors, quelle procédure suis-tu ?

    - tu devrais nous montrer ce que contiennent les fichiers.

    - et, pourquoi csh ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre régulier
    Homme Profil pro
    technicien informatique
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut
    Bonjour,

    Aujourd'hui je vérifie dans windows dans mon repertoire en question quels sont les noms de mes fichiers de data script puis je vais vérifier dans le txt qu'il sont bien tous présent.

    En csh car j'ai déjà un script existant qui faite certaine chose et je voudrais ajouter ce point là.

    Je ne sais pas codé, je fais plutôt des copier/coller de bout de code donc c'est pas simple pour moi.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    donc, il est question de comparer la liste des fichiers d'un répertoire* et les fichiers lister dans un fichier, c'est ça ?

    tu ne sais pas coder ? il est encore temps de t'y mettre, parce qu'on ne va pas faire ton boulot !
    mais on va t'aider.

    --
    * faut-il descendre dans les sous-répertoires ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Autre question: qui fait foi , la liste ou le fichier ?

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    l'un et l'autre :
    Citation Envoyé par bylbo7
    Je voudrais m'assuere que les data script présent dans le répertoire soit présent dans le fichier .txt et inversement.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre régulier
    Homme Profil pro
    technicien informatique
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    donc, il est question de comparer la liste des fichiers d'un répertoire* et les fichiers lister dans un fichier, c'est ça ?

    tu ne sais pas coder ? il est encore temps de t'y mettre, parce qu'on ne va pas faire ton boulot !
    mais on va t'aider.

    --
    * faut-il descendre dans les sous-répertoires ?
    Pas besoin de descendre dans les sous repertoires. tout est au même endroit.

    Je pensais faire un diff "$chemin_du_repertoire" "$chemin_du_fichier", mais ca ne me donne rien.

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 653
    Par défaut
    je ne vois pas, dans le man diff, d'option capable de faire ça.

    je m'orienterais donc vers grep, en traitant l'affichage de la liste des fichiers du répertoire comme le fichier de motifs...
    regarde le man
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Citation Envoyé par bylbo7 Voir le message
    Dans un script en csh je voudrais pouvoir comparer le contenu d'un repertoire et celui d'un fichier.

    Je m'explique, j'ai un repertoire avec plusieurs data script à l'intérieur et dans ce même repertoire j'ai un fichier .txt qui liste l'ensemble des datascripts.
    Je voudrais m'assuere que les data script présent dans le répertoire soit présent dans le fichier .txt et inversement.
    Si c'est juste pour un one-shot, je ferais bêtement (en bash/sh) un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for f in *sh; do echo "$f"; end | sort > /tmp/list-$$-1.txt
    sort le-fichier-qui-liste-les-datascripts.txt > /tmp/list-$$-2.txt
    diff /tmp/list-$$-1.txt /tmp/list-$$-2.txt
    Le diff indiquera avec un '<' les fichiers présents dans le répertoire, mais non présents dans le-fichier-qui-liste-les-datascripts.txt
    et avec un '>' les fichiers présents dans le-fichier-qui-liste-les-datascripts.txt, mais non présents dans le répertoire.

    Y a plus qu'à traduire en csh... (cette opération triviale est laissée en exercice au lecteur)

  10. #10
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Juillet 2019
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Juillet 2019
    Messages : 141
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for dir in untest/toto untest/tata untest/tutu
    do
        mkdir -p "$dir" 
        case "${dir//untest\//}" in
            toto) echo "un numéro" > $dir/cki ;;
            tutu) echo "chapeau pointu ?" > $dir/desc ;;
            tata) echo "fait du vélo j'espère" > $dir/faitquoi ;;
        esac
    done
    find untest > untest.liste
    if ! diff untest.liste - <<< $(find untest) >/dev/null
    then
        echo "différences ???"
    else
        echo "ok"
    fi
    je pense que c'est à peu près ça que tu cherchais (à adapter suivant la forme de la liste)
    NB:
    - diff renvoie vrai quand les fichiers sont identiques. (d'où le ! diff = différent, >/dev/null pour ne pas récupérer la sortie, juste pour savoir si diff ou pas)
    - comme untest est un répertoire, pour le comparer à un fichier, demande à diff de le traiter comme un fichier par substitution de commande, - indique stdin.

    EDIT: mais pardon pas fait gaffe, je m'exprimais en bash.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/10/2015, 16h55
  2. Réponses: 7
    Dernier message: 11/03/2011, 16h22
  3. Calcul entre données présentes dans 2 cubes différents
    Par drixon dans le forum Conception/Modélisation
    Réponses: 0
    Dernier message: 25/09/2009, 16h52
  4. Réponses: 5
    Dernier message: 27/01/2007, 21h19
  5. Excel - Lister fichiers présents dans un répertoire
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2006, 13h24

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