Decouper un fichier en 140 caract par lignes

Résolu
stephbret56 Messages postés 195 Statut Membre -  
stephbret56 Messages postés 195 Statut Membre -
Bonjour,

Je souhaiterai mettre en place un script ksh qui me permette de découper un fichier qui comporte à l’intérieur 1 seule ligne de 1350 caractères en 140 caractères par lignes

Exemple fichier d’origine:
ABCDEFGHIJKLMNOPQRS……12345698233435456465..XZAGTYHKJJHGJJJH…il y a un total de 1350 caractères sur la ligne……

Le fichier après découpage :

ABCDEFGHIJKLMNOPQRS……12345698233435456465..XZAGTYHKJJHGJJJH…il y a un total de 140 caractères sur la 1ère ligne……
ABCDEFGHIJKLMNOPQRS……12345698233435456465..XZAGTYHKJJHGJJJH…il y a un total de 140 caractères sur la 2ème ligne……
.
.
.
.
ABCDEFGHIJKLMNOPQRS……12345698233435456465..XZAGTYHKJJHGJJJH…il y a un total de 90 caractères sur la 10ème ligne et dernière ligne.

Merci pour votre aide
Configuration: AIX langage KSH

7 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    jp@MDK:~/tmpfs ssh$ cat fich
    ABCDEFGHIJKLMNOPQRS12345698233435456465XZAGTYHKJJHGJJJH
    
    jp@MDK:~/tmpfs ssh$ wc -c fich
    56 fich
    
    jp@MDK:~/tmpfs ssh$ sed 's/.\{14\}/&\n/g' fich
    ABCDEFGHIJKLMN
    OPQRS123456982
    33435456465XZA
    GTYHKJJHGJJJH
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    2
  2. stephbret56 Messages postés 195 Statut Membre 6
     
    Meci mais le résultat est inchangé voir mes lignes de commandes suivante:

    /tmp: sed 's/.\{14\}/&\n/g' fich
    ABCDEFGHIJKLMNnOPQRS123456982n33435456465XZAnGTYHKJJHGJJJH

    /tmp: pg fich
    ABCDEFGHIJKLMNOPQRS12345698233435456465XZAGTYHKJJHGJJJH
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Au choix, ou tu disposes de l'option "-i" de sed (voir version) et tu mets :
    sed -i.bak 's/.\{14\}/&\n/g' fich
    ce qui modifiera le fichier original tout en créant une sauvegarde nommée fich.bak.

    Soit tu rediriges la sortie vers un autre fichier :
    sed 's/.\{14\}/&\n/g' fich > new_fich
    0
  4. stephbret56 Messages postés 195 Statut Membre 6
     
    J'ai passé la commande comme indiquée le résultat est le suivant:

    sed 's/.\{14\}/&\n/g' fich > new_fich

    Résultat sous VI:

    vi new_fich
    "new_fich" 1 ligne, 59 caractères
    1 ABCDEFGHIJKLMNnOPQRS123456982n33435456465XZAnGTYHKJJHGJJJH
    ~
    ~
    Résultat en pg ou cat:

    pg new_fich
    ABCDEFGHIJKLMNnOPQRS123456982n33435456465XZAnGTYHKJJHGJJJH

    cat new_fich
    ABCDEFGHIJKLMNnOPQRS123456982n33435456465XZAnGTYHKJJHGJJJH

    Il n'y a pas de découpage du fichier fich dans new_fich

    Pour la commande sed -i j'ai le message suivant:
    sed -i.bak 's/.\{14\}/&\n/g' fich
    sed : option non admise : i
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    et comme ça?
    perl -pi.orig -e 's/(.{140})/$1\n/' fichier
    --
    106485010510997108
    0
  7. stephbret56 Messages postés 195 Statut Membre 6
     
    Merci pour la solution en perl elle fonctionne nikel chrome

    Milles merci bonne semaine A bientot
    0