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

Unix Discussion :

extraction a partir de plusieur fichiers regroupé dans un répertoire


Sujet :

Unix

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut extraction a partir de plusieur fichiers regroupé dans un répertoire
    salut tout le monde je veux reccuperer les memes champs dans plusieurs fichiers regroupés en un seul répertoire
    jai un script mais je le comprrends pas vraiment
    est ce que quelqun peut maider en faisant un commentaire sur les commandes

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #!/bin/sh
    #set -x
     
    RAC=/home/omc/TRAVAIL/OSS/STATRANS
    TMP=$RAC/etat_stat_Abis.tmp
     
    ######
    # Traitement des liens Abis
    ######
     
    TYP="Abis"
     
    RES=`uname -n`.txt
    RES=`expr substr $RES 1 3`
    RES=${RAC}/${RES}-${TYP}.txt
     
    rm $TMP $RES $RAC/tmp.*
     
    DIR=$RAC/BCF/log_get
    rm $DIR/*.~*
    cd $DIR
    for i in `ls -1 *.lst`
    do
    	LBSC=`expr length $i - 4`
    	BSC=`expr substr $i 1 $LBSC`
    	printf "--BSC: %s\n" $BSC >> $TMP
    	if [ -s $DIR/$BSC.lst ]
    	then
    		awk -v BSC=$BSC -f $RAC/BCF/get.awk $DIR/$BSC.lst >> $TMP
    	fi
    	printf "--Fin\n" $BSC >> $TMP
    done
     
    awk -v TYP=$TYP -f $RAC/etat_stat_trans.awk1 $TMP
     
    rm $TMP
     
    cd $RAC
    for i in `ls -1 tmp.$TYP.*`
    do
    	awk -v BSC=$BSC -f $RAC/etat_stat_trans.awk2 $RAC/$i >> $TMP
    done
     
    awk -f $RAC/etat_stat_trans.awk3 /home/omc/TRAVAIL/OSS/G2R_CI.TXT $TMP > $RES
     
    rm $TMP $RAC/tmp.*

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Quelques pistes :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #!/bin/sh
    #set -x
    
    RAC=/home/omc/TRAVAIL/OSS/STATRANS
    TMP=$RAC/etat_stat_Abis.tmp
    
    ######
    # Traitement des liens Abis
    ######
    
    TYP="Abis"
    
    RES=`uname -n`.txt  ##RES contient nom_de_machine.txt
    RES=`expr substr $RES 1 3` 
    RES=${RAC}/${RES}-${TYP}.txt
    
    rm $TMP $RES $RAC/tmp.* ## Ceci est une heresie : tu supprimes des fichiers que tu n'as pas cree !
    
    DIR=$RAC/BCF/log_get
    rm $DIR/*.~* ## Ceci est une heresie : tu supprimes des fichiers que tu n'as pas cree !
    cd $DIR
    for i in `ls -1 *.lst` ## Pour chaque fichier lst
    do
    	LBSC=`expr length $i - 4`## longueur du nom de fichier
    	BSC=`expr substr $i 1 $LBSC`## nom de fichier sans extension
    	printf "--BSC: %s\n" $BSC >> $TMP ## affiche le nom du fichier
    	if [ -s $DIR/$BSC.lst ] ## Si le fichier existe et que sa taille n'est pas 0
    	then
    		awk -v BSC=$BSC -f $RAC/BCF/get.awk $DIR/$BSC.lst >> $TMP
    	fi
    	printf "--Fin\n" $BSC >> $TMP
    done
    
    awk -v TYP=$TYP -f $RAC/etat_stat_trans.awk1 $TMP
    
    rm $TMP
    
    cd $RAC
    for i in `ls -1 tmp.$TYP.*`
    do
    	awk -v BSC=$BSC -f $RAC/etat_stat_trans.awk2 $RAC/$i >> $TMP
    done
    
    awk -f $RAC/etat_stat_trans.awk3 /home/omc/TRAVAIL/OSS/G2R_CI.TXT $TMP > $RES
    
    rm $TMP $RAC/tmp.*
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/02/2012, 16h16
  2. Réponses: 2
    Dernier message: 05/02/2011, 15h26
  3. Réponses: 2
    Dernier message: 03/05/2008, 13h34
  4. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  5. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39

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