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 :

rechercher les champs BDD dans des fichiers .txt


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 83
    Par défaut rechercher les lignes d'un fichier dans plusieurs fichiers .txt
    Bonjour,

    J'aimerai vérifier l'existence de mes champs contenus dans ma table T1 au contenu de plusieurs fichiers txt se trouvant dans mon dossier /TXT/

    J'imagine que la manière la plus simple est d'utiliser un grep via un script ksh.
    Mais voilà je n'y arrive vraiment pas.

    Auriez-vous des pistes de réflexion à me proposer?

    Je vous remercie d'avance :o)

    Bonne journée!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    pourrais tu être un peu plus précis.

    si c est rechercher des occurences dans un fichier un grep peut solutionner ton problème ... ou pas, cela dépend de la complexité de ce que tu veux faire précisément

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 83
    Par défaut
    D'une part, je possède une table T1ne contenant qu'une colonne: table_name ayant pour champ le nom de tables (comme le nom l'indique)
    D'autre part, j'ai plusieurs fichiers *txt. Ces fichiers contiennent des requêtes sql dont des insert, update, merge sur des tables listés dans la table T1.

    J'aimerais faire une correspondance entre toutes les tables contenues dans les différentes requêtes des fichiers txt et les tables issus de ma table T1.

    Le résultat final serait de me lister les tables non-utilisés (autrement dit, contenu uniquement dans T1).

    J'espère avoir été plus clair.
    Merci pour ta réponse Ashin

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    ok

    je ne pense pas que grep seul puisse faire l'affaire

    ce qu'il faut faire c est prendre une table de T1 et la chercher dans tes fichiers txt et retourner le résultat puis passer a la suivante etc ...

    un script perl pourrait etre bien pour ça



    moi je ferais une boucle foreach pour chaque élément de ton fichier T1,
    dans cette boucle tu fais un grep sur cet élément pour chercher dans tous tes fichiers txt et par rapport au code de retour tu fais ce dont tu as besoin

    en perl ça donnerais quelque chose comme ça mais ça doit se faire en shell aussi:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #! /usr/local/bin/perl
     
    my $INPUT_FILE = "T1";
    my $OUTPUT_FILE = "output.txt";
    my $TXT_FILES = "rq1.txt rq2.txt rq3.txt";
    my @StructTable = ();
     
    #tu copies ton fichier T1
    open (HANDLE_INPUT_FILE, $INPUT_FILE) || die "open problem of $INPUT_FILE : $!";
    my @contenu = <HANDLE_INPUT_FILE>;
    close(HANDLE_INPUT_FILE);
     
    foreach my $line (@contenu) 
    {
    	chomp $line;
    	system("grep -s $line $TXT_FILES");
    	if ( $? eq "0" )
    	{
    		print "pattern $line present\n";
    	}
    	else
    	{
    		print "pattern $line non present\n";
    		push @StructTable, $line;
    	}
    }
     
    open (HANDLE_OUTPUT_FILE, ">$OUTPUT_FILE") || die "open problem of $OUTPUT_FILE : $!";
    foreach my $ligne (@StructTable) {
        chomp $ligne;
        print HANDLE_OUTPUT_FILE "$ligne\n";
    	}
    close(HANDLE_OUTPUT_FILE);
    c est pas un code compilable, c est juste pour te donner une idée

    edit : finalement je l ai testé, tu as la liste des pattern non utilisé dans output.txt

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    grep + awk + sed devrait t'aider pas mal...

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 83
    Par défaut
    Merci pour vos réponses!
    Je galère un peu là, je vous l'avoue pour le faire. J'essaie d'avancer mais pas facile!
    @Souviron3: grep + awk + sed hum ok je vais voir par là.

    Et auriez-vous des exemples de script shell (ksh) qui utilise une connexion a une base de données sql pour liser des champs?
    Merci beaucoup d'avance!
    Bonne semaine!

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

Discussions similaires

  1. [Batch] acceder à des repertoires distants dont les IP sont dans un fichier txt
    Par kriegmaster dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 21/05/2015, 10h33
  2. find + grep recherche de plusieurs mots dans des fichiers différents
    Par sakura.haruno dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 27/04/2010, 22h58
  3. récuperer les champs saisi dans un fichier
    Par wrigan dans le forum Langage
    Réponses: 1
    Dernier message: 06/12/2009, 12h40
  4. Recherche d'une phrase dans un fichier txt
    Par beegees dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/07/2007, 08h44
  5. [code]Recherche d'une chaine dans des fichiers
    Par guillaume_pays_ceven dans le forum Contribuez
    Réponses: 5
    Dernier message: 21/06/2007, 14h32

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