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 :

decoupage en colonnes de 128 caractères


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut decoupage en colonnes de 128 caractères
    Bonjour,

    Je un fichier format UNIX : sur une seule ligne.
    Je cherche a insérer dans ce fichier tous les 128 caractères un caractère "\r" pour avoir un fichier de x ligne chacune d'une longueur de 128 caractère + ce caractère de fin de ligne.
    Le nombre de caractère du fichier est toujours un modulo de 128.
    lorsque j'utilise la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fold -w 128 mon-fichier
    l'insertion n'est pas parfaite certaine ligne font plus de 128caractères.
    Le problème est probablement lié aux caractères codé laissant apparaitre des qui semble pertuber le process de fold.

    Je cherche une solution a ce problème.

    Je pensais à une boucle de lecture caractère par caractère avec un et est une extraction du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     newligne = 'echo $ligne | cut 1-128'
    .

    Je n'ai aucun langue de haut niveau disponible , seul solution les commande AIX de base

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    je réponds un peu au pied levé (pas testé ni rien), est-ce qu'un truc comme ça fonctionne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -r 's/(.{128})/\1\n/g' fichier

  3. #3
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut CEla ne marche pas
    Voici le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -r 's/(.{128})/\1\n/g' fichier
    sed: illegal option -- r

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed  's/(.{128})/\1\n/g' fichier
    sed: Function s/(.{128})/\1\n/g cannot be parsed.

  4. #4
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par dedalios Voir le message
    sed: illegal option -- r
    effectivement, au temps pour moi

    Citation Envoyé par dedalios Voir le message
    l'insertion n'est pas parfaite certaine ligne font plus de 128caractères.
    Le problème est probablement lié aux caractères codé laissant apparaitre des qui semble pertuber le process de fold.
    en fait je ne suis pas certain de comprendre, tu aurais un exemple concret éventuellement (et le résultat que tu attendrais si tout se passe bien) ?

  5. #5
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    effectivement, au temps pour moi


    en fait je ne suis pas certain de comprendre, tu aurais un exemple concret éventuellement (et le résultat que tu attendrais si tout se passe bien) ?

    voici ce qui peut pauser problème " ¯yåètœHG Œ9" impossible de mettre d'autre information.

    Le fichier est un fichier d'une seule ligne contenant des éléments qui ne sont pas des caractères ascci. pour autant j'ai besoin d'injecter tous les 128 caractères une fin de ligne
    et je ne dispose que des ressources UNIX de base .

  6. #6
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut cas
    Citation Envoyé par BufferBob Voir le message
    effectivement, au temps pour moi


    en fait je ne suis pas certain de comprendre, tu aurais un exemple concret éventuellement (et le résultat que tu attendrais si tout se passe bien) ?

    voici ce qui peut pauser problème " ¯yåètœHG Œ9" impossible de mettre d'autre information.

    Le fichier est un fichier d'une seule ligne contenant des éléments qui ne sont pas des caractères ascci. pour autant j'ai besoin d'injecter tous les 128 caractères une fin de ligne
    et je ne dispose que des ressources UNIX de base .


    je pensez a quelque chose de l'ordre de


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while read ligne
    	do
    		idligne=`echo $ligne | cut -c 1-128`
        echo  $idligne  >> ${FIC_SQL}
    	done < $FIC_IN

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    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 376
    Par défaut
    Bonjour,

    Ton principal problème c'est que tu dois connaitre la locale utilisée pour la transcription de ta ligne.
    Exemple possible par exemple si tu es en fr_FR.utf8:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LC_ALL=fr_FR.utf8 awk '{L=length($0);i=1;while(i<L){S=substr($0,i,128);print S;i=i+128}}' fichier
    mais tu peux déjà essayer avec ta configuration de local par défaut (car la commande fold ne tient pas compte de la locale, elle gère des octets et non des caractères (qui eux, peuvent être encodés sur plusieurs octets) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{L=length($0);i=1;while(i<L){S=substr($0,i,128);print S;i=i+128}}' fichier
    Bon après, le awk ici, ne fonctionne peut-être pas sur ton AIX....
    Si c'est le cas, peux-tu utiliser perl, par exemple, qui lui est à peu près similaire sur toutes les plateformes unix ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2013, 18h17
  2. Syntaxe : noms de colonnes contenant des caractères spéciaux
    Par phDeveloppement dans le forum Langage SQL
    Réponses: 12
    Dernier message: 20/04/2012, 11h07
  3. Colonne de type caractère
    Par haykelFST dans le forum SQL
    Réponses: 10
    Dernier message: 03/04/2012, 14h10
  4. [MySQL] Nom de colonne comportant des caractéres speciaux inaccesible
    Par limace dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/04/2010, 20h21
  5. [CR 8] Export état dans Excel - colonne limitée à 255 caractères
    Par ARONE dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 20/07/2009, 10h50

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