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 :

Intégration de caractères dans un fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Intégration de caractères dans un fichier
    Bonjour,

    J'ai un fichier mon.fichier.31.csv contenant des données de types :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    aaaaa;bbbbb;cccc;12345;
    ccccc;ddd;eeeeeeeee;7890;
    etc.....
    Je souhaite extraire du nom de mon fichier des caractères que j'intégrerai ensuite en début de chaque enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    31;aaaaa;bbbbb;cccc;12345;
    31;ccccc;ddd;eeeeeeeee;7890;
    31;etc.....
    Aujourd'hui, mon fichier se nomme mon.fichier.31.csv mais demain il aura peut être une autre valeur, par exemple mon.fichier.51.csv.

    Merci de m'indiquer comment coder un script shell me permettant de réaliser cette action.

  2. #2
    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 et Bienvenue,

    Tu veux juste récupérer le nombre complet ce trouvant avant ".csv" du nom de ton fichier ?

    Mais, est-ce qu'il y a un seul fichier dans ton répertoire, car le souci ici, c'est de savoir comment on repère ton fichier ?

    Et ensuite, une fois que tu auras cette valeur, comment comptes-tu modifier le dit fichier pour y intégrer la valeur sur chaque ligne ou peut-être que ça fait partie de la demande ?

    La demande n'est pas très claire...

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    Bonjour,

    voici les réponses aux questions que vous posez :
    1/ Je veux récupérer le nombre complet qui figure dans le nom du fichier.
    2/ Ce fichier n'est pas le seul dans le répertoire
    3/ Enfin, je veux intégrer en tête de chacun des enregistrements de mon.fichier.31.csv, le chiffre 31.
    Peu importe la commande (sed, awk, ...) du moment que ça marche. Si le résultat est produit dans un autre fichier, ce n'est pas un pblm.

    Merci.

  4. #4
    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
    Voici en exemple:
    Contenu du répertoire avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ ls -1
    mon.fichier.31.csv
    mon.fichier.510.csv
    Contenu des fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ cat mon.fichier.31.csv 
    aaaaa;bbbbb;cccc;12345;
    ccccc;ddd;eeeeeeeee;7890;
    $ cat mon.fichier.510.csv 
    aaaaa;bbbbb;cccc;12345;
    ccccc;ddd;eeeeeeeee;7890;
    La commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ awk 'FNR==1{match(FILENAME,"[0-9]+.csv");VAL=substr(FILENAME,RSTART,RLENGTH-4)}{print VAL";"$0 >FILENAME".modif"}' mon.fichier.[0-9]*.csv
    Contenu du répertoire après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls -1
    mon.fichier.31.csv
    mon.fichier.31.csv.modif
    mon.fichier.510.csv
    mon.fichier.510.csv.modif
    Contenu des nouveaux fichiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ cat mon.fichier.31.csv.modif 
    31;aaaaa;bbbbb;cccc;12345;
    31;ccccc;ddd;eeeeeeeee;7890;
    $ cat mon.fichier.510.csv.modif 
    510;aaaaa;bbbbb;cccc;12345;
    510;ccccc;ddd;eeeeeeeee;7890;
    Bonnes Fêtes.

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Je ne veux pas chercher, je veux que l'on me donne une solution ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     awk -i inplace ' { print gensub("[^0-9]*(.*).csv","\\1","g",FILENAME)";"$0  }' fichier.truc.machin.31.csv

  6. #6
    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
    Citation Envoyé par becket Voir le message
    Je ne veux pas chercher, je veux que l'on me donne une solution ...
    On est bien d'accord sur ça.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    J'ai cherché, j'ai trouvé, merci à tous les deux.....

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/06/2006, 14h40
  2. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10
  3. Ecriture d'une chaine de caractères dans un fichier
    Par fleur_de_rose dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2006, 09h34
  4. Réponses: 3
    Dernier message: 27/06/2005, 16h24
  5. Réponses: 5
    Dernier message: 25/01/2005, 14h26

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