Decouper un fichier en 140 caract par lignes

Résolu/Fermé
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 - 27 oct. 2008 à 11:06
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 - 27 oct. 2008 à 12:10
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
A voir également:

7 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 oct. 2008 à 11:14
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
27 oct. 2008 à 11:26
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
27 oct. 2008 à 11:32
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
27 oct. 2008 à 11:37
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2008 à 11:48
Salut,
et comme ça?
perl -pi.orig -e 's/(.{140})/$1\n/' fichier
--
106485010510997108
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2008 à 11:48
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
27 oct. 2008 à 12:10
Merci pour la solution en perl elle fonctionne nikel chrome

Milles merci bonne semaine A bientot
0