Découpage de texte
Résolu/Fermé
A voir également:
- Découpage de texte
- Decoupage video - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
- Deflouter texte - Forum Logiciels
- Transcription audio en texte word gratuit - Guide
3 réponses
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
2 sept. 2010 à 13:49
2 sept. 2010 à 13:49
hello
nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {print > "fichier" i} fichier
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
2 sept. 2010 à 16:09
2 sept. 2010 à 16:09
essayer
nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {n=sprintf("dump_1850_%d", i);print > n }' fichier
C'est presque ca !! :
~/Essais>cat dump_1850
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
~/Essais>nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {n=sprintf("dump_1850_%d", i);print > n }' dump_1850
~/Essais>cat dump_1850_1
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
~/Essais>cat dump_1850_2
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
~/Essais>cat dump_1850_3
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
Comme vous le voyez il y a un problème avec le dump_1850_2 et il n'y a pas de dump_1850_4 !
PS : le fichier de départ n'est pas exactement le même que tout à l'heure mais ca doit marcher pour celui-ci aussi et je devrais dans ce cas obtenir 4 fichiers.
~/Essais>cat dump_1850
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
~/Essais>nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {n=sprintf("dump_1850_%d", i);print > n }' dump_1850
~/Essais>cat dump_1850_1
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
~/Essais>cat dump_1850_2
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
~/Essais>cat dump_1850_3
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
03 03 00 00 FF 00 00 FF 00 00 FF 00 00 01 A 00
65 00 AB 3 48 01 01 00 00 00 00 00 00 FF FF 00
00 5A 3 FF 00 FF 00 00 00 00 00 00 FF FF 00 00
78 39 FF 00 FF 00 00 00 00 00 00 FF FF 00 00 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
Comme vous le voyez il y a un problème avec le dump_1850_2 et il n'y a pas de dump_1850_4 !
PS : le fichier de départ n'est pas exactement le même que tout à l'heure mais ca doit marcher pour celui-ci aussi et je devrais dans ce cas obtenir 4 fichiers.
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
3 sept. 2010 à 09:26
3 sept. 2010 à 09:26
effectivement, parce qu'il y a plusieurs lignes vides
$ nawk 'BEGIN{x=i=1}; /^$/ {x=0;next} ; {if(!x)i++;x=1;n=sprintf("dump_1850_%d", i);print > n }' fichier $ ls du* dump_1850_1 dump_1850_2 dump_1850_3 dump_1850_4 $
Fonctionne très bien avec awk sous bash en tout cas:
Peut-être un problème avec nawk?
Si tu es sous sh par exemple, il est possible que cela vienne de ta double quote. Ici, la simple quote a été remplacée par \047:
https://www.developpez.net/forums/d708669/systemes/linux/shell-commandes-gnu/awk-probleme-quote-fonction-awk/
Je ne connais pas le code pour la double quote, mais une fois trouvé, tu peux essayer.
[xiawi@localhost tmp]$ awk 'BEGIN{i=1}; /^$/ {i++;next} ; {print > "dump_1850" i}' dump_1850 [xiawi@localhost tmp]$ cat dump_18501 32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2.. [xiawi@localhost tmp]$ cat dump_18506 00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF 00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37 00 80 00
Peut-être un problème avec nawk?
Si tu es sous sh par exemple, il est possible que cela vienne de ta double quote. Ici, la simple quote a été remplacée par \047:
https://www.developpez.net/forums/d708669/systemes/linux/shell-commandes-gnu/awk-probleme-quote-fonction-awk/
Je ne connais pas le code pour la double quote, mais une fois trouvé, tu peux essayer.
2 sept. 2010 à 14:06
$> cat dump_1850
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
$> nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {print > "fichier" i}' dump_1850
nawk: syntax error at source line 1
context is
BEGIN{i=1}; /^$/ {i++;next} ; {print > "fichier" >>> i <<< }
nawk: illegal statement at source line 1
?
Modifié par romzzzz le 2/09/2010 à 14:11
$> cat dump_1850_1
32 03 00 00 00 00 FF FF FF FF 2D 00 01 00 00 2..
$> cat dump_1850_2
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
$> cat dump_1850_3
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
$> cat dump_1850_4
32 03 00 00 00 00 FF FF FF FF 2D 00 00 01 81 2..
$> cat dump_1850_5
05 00 09 00 01 00 01 00 01 00 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 FF 2D 00
$>cat dump_1850_6
00 FF 00 FF 00 00 00 00 00 00 04 65 00 00 FF FF
00 03 00 01 01 00 FF FF F0 01 00 FF 00 00 05 37
00 80 00
Voilà :)
2 sept. 2010 à 14:14
Et là tu as le bon résultat !
Modifié par romzzzz le 2/09/2010 à 14:22
$> nawk 'BEGIN{i=1}; /^$/ {i++;next} ; {print > "fichier" i}' dump_1850
nawk: syntax error at source line 1
context is
BEGIN{i=1}; /^$/ {i++;next} ; {print > "fichier" >>> i <<< }
nawk: illegal statement at source line 1