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 :

[KSH] lecture et comparaison de deux fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 627
    Par défaut [KSH] lecture et comparaison de deux fichiers
    Bonjour,

    je dois lire deux fichiers file1 et file2 en utilisant ksh.

    Mes fichiers sont de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    des lignes avec du blabla
     
    <TAG>
    une ligne utile
    une deuxième ligne utile
    et même une troisième
    voire plus si affinités
    <ENDTAG>
    Je souhaite lire la première ligne de file1 et la première ligne de file2 à partir de <TAG>, effectuer un traitement (les deux lignes contiennent des résultats que je souhaite comparer), et afficher un resultat sur la sortie standard.

    Je vois bien une méthode (pas simple), avec des imbrications de do while et des branchements sur plusieurs niveaux (4 ou 5), mais je cherche à rester lisible (si possible).

    Comment faire ?

    Merci pour votre aide.

  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
    J'ai besoin de vérifier si j'ai bien compris tes spécifications:
    une fois que le script a effectué ce traitement de comparaison entre la première de file1 et la première ligne de file2 à partir de <TAG> et affiché le résultat, le script doit terminer, c'est bien ça?

  3. #3
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 627
    Par défaut
    Non, il faut refaire le même traitement pour les lignes suivantes, jusqu'à <ENDTAG> (pardon).

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Les deux fichiers sont structurés de la même façon ?
    Les TAG's à comparer contiennent le même nombre de lignes ?

    On peut avoir un exemple concret des choses à comparer ? Merci.

  5. #5
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 627
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Les deux fichiers sont structurés de la même façon ?
    Les TAG's à comparer contiennent le même nombre de lignes ?
    Oui et oui. Par contre le <TAG> peut être ligne 28 sur le fichier 1 et ligne 512 sur le fichier 2.

    Comme exemple concret, on aurait :

    fichier 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    des lignes à ignorer
     
    <TAG>
    D1:1:4
    D2:12:7
    D3:34:2
    <ENDTAG>
    fichier 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    d autres lignes à ignorer
    et là aussi
     
    <TAG>
    S1:0:12
    S2:1:387
    Z3:99:42
    <ENDTAG>
    Et mon traitement consiste à faire des opérations arithmétiques sur les deux nombres de chaque ligne (j'aurais des cut à faire ensuite, donc).

    Eventuellement, vu j'arrive à récupérer le numéro de ligne (avec grep), est-ce que je peux lire un fichier à partir d'une ligne donnée (je sais faire en C, mais en ksh...) ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par ManusDei Voir le message
    Oui et oui. Par contre le <TAG> peut être ligne 28 sur le fichier 1 et ligne 512 sur le fichier 2.
    Ok, Et est-ce qu'éventuellement les TAG's se trouvent quand même dans le même ordre malgré la différence de place ?

    Par contre je ne pense pas qu'un simple traitement en shell puisse faire l'affaire

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

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

    quelle version précisément de ksh ?

    sed peut facilement récupérer les fragments souhaités dans deux fichiers, deux tableaux...
    après, ça dépend un peu des traitement à effectuer.

  8. #8
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 627
    Par défaut
    Une version d'avant ksh93, vu mes recherches sur internet (ksh --version ne renvoie rien). Et finalement, je vais passer par sed, qui est effectivement plus adapté à mon problème.

    Merci

  9. #9
    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 ManusDei Voir le message
    Une version d'avant ksh93, vu mes recherches sur internet (ksh --version ne renvoie rien). Et finalement, je vais passer par sed, qui est effectivement plus adapté à mon problème.

    Merci
    Pour avoir la version de ksh, tu peux tenter echo $KSH_VERSION ou bien:
    avec un return après le set -o emacs puis un Ctrl-v tout seul

  10. #10
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 138
    Par défaut
    ksh continue d'évoluer sous la houlette de David Korn.
    La dernière version est disponible ici
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. Comparaison de deux fichiers Excel
    Par Fab_lux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2007, 22h41
  2. comparaison de deux fichiers
    Par john123 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 17/03/2007, 17h38
  3. Comparaison de deux fichiers EXCEL
    Par meufeu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/10/2006, 23h56
  4. comparaison de deux fichiers textes
    Par chmaichel dans le forum Delphi
    Réponses: 1
    Dernier message: 28/07/2006, 12h35
  5. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 17h05

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