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

Solaris Discussion :

Traitement fichier unix solaris


Sujet :

Solaris

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pio_killer
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 194
    Par défaut Traitement fichier unix solaris
    Bonjour,

    dans un répertoire, j'ai une liste de fichier texte contenant des données de la forme suivante:
    Nom du fichier : ExtractionA
    Contenu du fichier :
    Fichier1_date1_argument1
    Fichier2_date2_argument0
    Fichier3_date3_argument2
    Fichier4_date4_argument0
    Fichier5_date5_argument3

    Nom du fichier : ExtractionB
    Contenu du fichier :
    Fichier1_date1_argument1
    Fichier2_date2_argument0
    Fichier3_date3_argument2
    Fichier4_date4_argument0

    etc...

    je souhaiterais faire un script qui parcourt ces fichier un part un et ligne par ligne.
    il faudrait qu'il me renvoie le nom du fichier ainsi que la ligne où la valeur "argument" est : "argument0"
    Ceci uniquement pour la dernière ligne
    Il faut également controler et renvoyer la ligne lorsque la valeur "argument" est : "argument3"

    Dans cet exemple, il devra me renvoyer:
    ExtractionA;Fichier4_date4_argument0
    ExtractionA;Fichier5_date5_argument3
    ExtractionB;Fichier4_date4_argument0

    Je suis débutant en script c'est pour cela que demande de l'aide.

    Merci d'avance.

  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
    Par défaut
    Bonjour,

    La contrainte "Uniquement pour les dernières lignes" est extrèmement complexe à gérer, et demandera probablement un développement complexe et spécifique.

    Sinon, sans cette contrainte, ce que tu cherches à faire se fait très simplement avec grep :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/bin/egrep "argument0$|argument3$" mon_fichier.txt
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    salut,

    tu as droit à quel langage de script ? ksh, perl, ... ?

    edit :

    en ksh, si tu peux le faire en plusieurs commandes, tu peux te contenter de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # grep argument0 ExtractionA |tail -1
    # grep argument3 ExtractionA |tail -1
    # grep argument0 ExtractionB |tail -1
    # grep argument3 ExtractionB |tail -1
    Ce qui peut éventuellement s'intégrer dans un script ksh avec une paire de boucles imbriquées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/ksh
     
    for i in `ls Extract*`
    do
    	for j in argument0 argument3
    	do
    		echo $i":"`grep $j $i | tail -1`
    	done
    done
    edit²: explications très rapides
    for i in `ls Extract*` => la variable i prend dans chaque boucle for une valeur qui provient de la commande ls Extract*, donc tour à tour ExtractionA, ExtractionB...
    for j in argument0 argument3 => la variable j prend, pour chaque boucle de i (ie, pour chaque fichier Extraction*), les valeurs argument0 et argument3 tour à tour.
    echo $i":"`grep $j $i | tail -1` => echo $i affiche le nom du fichier ":" pour afficher deux points après le nom ^^ `grep $j $i | tail -1` réalise les commandes que j'ai donné au début pour tous les couples $i $j et affiche le résultat à la suite du echo...

  4. #4
    Membre confirmé Avatar de pio_killer
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 194
    Par défaut
    Je te remercie surtout pour tes explication qui sont très claires.
    Je vais essayer dessuite.

  5. #5
    Membre confirmé Avatar de pio_killer
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 194
    Par défaut
    Ca marche impec.

    Je vous remercie pour votre aide à tous les 2 .

    A bientôt

  6. #6
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Pas de problème

    tu peux même cliquer sur le bouton [résolu] en bas si tu repasses par ici

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

Discussions similaires

  1. Traitement de fichiers Unix sous Windows avec AWK
    Par michel baily dans le forum Shell et commandes POSIX
    Réponses: 1
    Dernier message: 06/10/2011, 10h45
  2. Traitement fichier excel avec vb6
    Par couscoussier dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/09/2006, 16h15
  3. [PERL] traitement fichier texte
    Par osiris73 dans le forum Langage
    Réponses: 10
    Dernier message: 05/05/2006, 20h06
  4. Optimiser traitement fichier [.txt]
    Par Metallic-84s dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2006, 13h33
  5. Système de fichier UNIX !
    Par Greatguy dans le forum Administration système
    Réponses: 1
    Dernier message: 04/02/2006, 20h24

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