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 POSIX Discussion :

Découpage fichier séquentiel en line séquentiel [AIX]


Sujet :

Shell et commandes POSIX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Par défaut Découpage fichier séquentiel en line séquentiel
    Bonjour,

    Est-il possible de découper un fichier séquentiel en line séquentiel ?
    Je souhaiterais pouvoir faire un retour à la ligne tous les 128 caractères de mon fichier sans passer par un programme mais juste par un script shell.

    Merci d'avance pour vos réponses

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    un petit sed suffit pour faire ce genre d'action oui

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

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

    sans passer par un programme
    en bash ?
    read -n 128 dans une boucle while, pour lire/parcourir un fichier.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Par défaut
    Je dois mal utiliser la commande sed alors.

    J'ai réussi sur un fichier de petite taille mais quand je le fais sur un fichier contenant une ligne de 20000 caractères, j'obtiens un fichier vide.

    Quand je disais pas par programme, je voulais plutôt dire pas par un langage autre que Shell Unix.

    Je ne connais pas bash.

    Mes enregistrements commencent tous par 002 donc, j'avais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/  002/  \n002/g' fichier1 > fichier2
    Je vais essayer le read -n 128. Je n'y avais pas pensé.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Quand je disais pas par programme, je voulais plutôt dire pas par un langage autre que Shell Unix.
    'comprends pas

    tu veux faire du 100% shell, ou tu peux utiliser des programmes externes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/.\{128\}/&\n/g' fichier
    oused, comme fold sont des programmes externes.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Par défaut
    Les réponses que vous me faites me conviennent.
    Je ferais le test jeudi.
    Je maîtrise pas forcément UNIX et pour moi, la commande sed faisait partie d'Unix dans le sens où je la trouve dans le "man".

    Je ne voulais pas utiliser un langage comme le c ou le java.

    Je vous remercie pour votre aide et je confirmerais ou non si ça a marché.
    Bonnes fêtes.

  7. #7
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par Sam77700 Voir le message
    pour moi, la commande sed faisait partie d'Unix dans le sens où je la trouve dans le "man".
    Le man est très loin d'être uniquement spécifique au shell. Tu peux y trouver notamment toutes les fonctions de la lib C standard et POSIX (donc aucun rapport avec du shell).

    Des langages shell t'en as une pelleté dont ksh, bash ou autre. Même Perl ou PHP ou Python ou d'autres peuvent être utilisés comme des langages shell via un interpréteur console (/usr/bin/perl, /usr/bin/php, etc).

    Bon bref, sed et awk sont des programmes (voire même un langage complet pour le cas de awk avec diverses implémentations possibles : gawk, mawk...) indépendant. Mettre du awk dans son script ou mettre du php/perl ou autre, ça revient à utiliser des langages/programmes externes. Les commandes Unix sont elles mêmes des programmes externes et indépendants du shell (ls, cat, grep, ...).

    Alors ça dépend ce que tu attend, mais de toute façon il est assez rare qu'un script shell bash, sh, ksh ou autre ne fasse pas au moins un appel à un programme externe. Sans sed, awk et grep notamment, le parsing reste assez limité.

    Cordialement,
    Idriss

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Par défaut
    En fait, nous recevons un fichier séquentiel d'une entreprise extérieure via CFT. Il semblerait que cet outil ne permette pas de transférer le fichier directement au format line séquentiel. Nous avons donc besoin de transformer le fichier reçu avant que celui-ci passe dans notre chaîne de traitement en korn-Shell.

    Merci pour les explications, je pratique simplement le monde Unix sans être un spécialiste.
    Cordialement

  9. #9
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Étant donné le besoin, je pense personnellement qu'il n'y a aucun mal à utiliser la commande sed dans un script ksh étant donné que cette commande est une commande présente de base dans la plupart des Unix d'actualité

    Fin en tout cas, faut choisir ce qui est le plus adapté en fonction de ce dont tu dispose si ta problématique c'était uniquement de ne pas avoir à installer quelque chose en plus. Si sed est déjà là sur les machines cibles, n'hésites pas.

    Idriss

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Par défaut
    Bonjour,

    J'ai fait le test des instructions données.

    L'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/.\{128\}/&\n/g' fichier
    ne semble pas fonctionner sur un fichier contenant plusieurs lignes de 4090 caractères ou plus.

    Par contre l'instruction répond complètement à mon besoin.

    Je vous remercie pour votre aide.

    Bonne fêtes de fin d'année.

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

Discussions similaires

  1. Lire des fichiers sons de façon séquentielle
    Par gerard1638 dans le forum JavaFX
    Réponses: 2
    Dernier message: 29/08/2014, 08h26
  2. bcp : découpage fichier txt tous les 80 carcatères
    Par jfontaine dans le forum Développement
    Réponses: 1
    Dernier message: 12/01/2011, 14h31
  3. Lire un fichier UTF-8 line par line en C
    Par freeseif dans le forum Windows
    Réponses: 9
    Dernier message: 25/01/2010, 16h44
  4. [SAX] Découpage fichier xml
    Par akhen3100 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 06/03/2009, 09h59
  5. Réponses: 1
    Dernier message: 12/12/2007, 14h03

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