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 :

Script shell-Lecture de certaines chaines de caractères de plusieurs fichiers, dans un ordre précis


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut Script shell-Lecture de certaines chaines de caractères de plusieurs fichiers, dans un ordre précis
    Bonjour à tous !
    3 ou 4e fois que je code du shell et donc 3 ou 4e fois que je viens bénéficier de vos compétences (généreusement partagées )

    Pour info je travaille sur Windows et passe par Cygwin.

    Je dispose de 4 fichiers .txt dans le même répertoire, chacun constitué de 2 colonnes et possédant le même nombre de lignes.

    Je souhaite écrire un fichier avec 5 colonnes contenant:
    -Les 2 colonnes du fichier n°1
    -La seconde colonne des autres fichiers

    et obtenir le tout sous forme d'un beau tableau.
    Après avoir passé une bonne après midi la dessus je n'ai pas réussi à obtenir ce résultat précis, merci donc de bien vouloir me filer un petit coup de pouce s'il vous plait!

    Merci d'avance ladies and gentlemen

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

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

    Je souhaite écrire un fichier avec 5 colonnes contenant:
    -Les 2 colonnes du fichier n°1
    -La seconde colonne des autres fichiers
    ça, c'est un travail pour awk; en testant NR pour savoir si on lit le premier fichier ou les autres, et en construisant un tableau avec les différentes données, avec FNR en tant qu'index.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par Ladoll Voir le message
    Après avoir passé une bonne après midi la dessus je n'ai pas réussi à obtenir ce résultat précis
    Peux-tu nous montrer le code que tu as écrit ?

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    paste fic1 fic2 fic3 fic4 | awk '{printf("%s %s %s %s %s\n", $1, $2, $4, $6, $8)}'
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    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 349
    Par défaut
    Bonjour,
    Un autre exemple en builtin assez interressante coté apprentissage:
    Les fichiers utilisés pour l'exemple
    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
    $ more f[1-4].txt
    ::::::::::::::
    f1.txt
    ::::::::::::::
    B1 2A
    B1 2B
    B1 2C
    B1 2D
    ::::::::::::::
    f2.txt
    ::::::::::::::
    C3 4D
    C3 4E
    C3 4F
    C3 4G
    ::::::::::::::
    f3.txt
    ::::::::::::::
    C5 6D
    C5 6E
    C5 6F
    C5 6G
    ::::::::::::::
    f4.txt
    ::::::::::::::
    C7 8D
    C7 8E
    C7 8F
    C7 8G
    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ exec 3<f1.txt 4<f2.txt 5<f3.txt 6<f4.txt;while read -u 3 a;read -u 4 c d;read -u 5 e f;read -u 6 g h;do echo "$a $d $f $h";done;exec 3<&- 4<&- 5<&- 6<&-
    B1 2A 4D 6D 8D
    B1 2B 4E 6E 8E
    B1 2C 4F 6F 8F
    B1 2D 4G 6G 8G

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    Bonjour,

    Merci à tous pour vos réponses. Je n'aurai pas le temps de m'y plonger aujourd'hui mais je tenais dors et déjà à vous remercier.

    Je vous tiens au courant!

    Bon lundi!

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Ladoll Voir le message
    Merci à tous pour vos réponses. Je n'aurai pas le temps de m'y plonger aujourd'hui mais je tenais dors et déjà à vous remercier.
    D'ores et déjà !!!
    Etant donné que tu n'as pas fait de faute de conjugaison au futur du verbe avoir (en effet, beaucoup écrivent à tort "je n'aurais") je pense que tu aimes bien écrire correctement et donc je tenais à t'informer de ton erreur car je suis certain que tu en feras bon usage...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [XL-2007] récupérer chaine de caractère en plusieurs étapes dans une combobox via variable
    Par chombriko dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 21/05/2012, 09h43
  2. Réponses: 0
    Dernier message: 05/11/2010, 10h51
  3. lecture d'une chaine de caractères
    Par freestyler dans le forum C#
    Réponses: 2
    Dernier message: 01/03/2007, 17h20
  4. Réponses: 3
    Dernier message: 26/12/2006, 09h13
  5. Lecture d'une chaine de caractère avec fgets
    Par mayoouketchup dans le forum Langage
    Réponses: 9
    Dernier message: 22/12/2005, 16h17

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