Découpage ligne avec awk
abou
-
abou -
abou -
Bonjour,
J'ai un millier de champs qui se retrouvent tous dans une seule ligne d'un fichier texte comme ceci :
46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800...
awk n'y voit qu'une seule ligne, mais moi j'ai besoin de restructurer mon fichier de sorte que chaque ligne contient uniquement 4 champs.
Une idée ?
Merci d'avance
J'ai un millier de champs qui se retrouvent tous dans une seule ligne d'un fichier texte comme ceci :
46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800...
awk n'y voit qu'une seule ligne, mais moi j'ai besoin de restructurer mon fichier de sorte que chaque ligne contient uniquement 4 champs.
Une idée ?
Merci d'avance
A voir également:
- Découpage ligne avec awk
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Decoupage instagram - Guide
7 réponses
Salut,
Avec sed
Avec sed
lami20j@debian-acer:~$ cat fic 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 lami20j@debian-acer:~$ sed -r 's/(([0-9]+ ){4})/\1\n/g' fic 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 lami20j@debian-acer:~$ sed 's/\(\([0-9]\+ \)\{4\}\)/\1\n/g' fic 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800
Salut,
Avec "sed" :
;-))
Avec "sed" :
$ cat plop 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 $ sed 's/\([^ ]* \)\([^ ]* \)\([^ ]* \)\([^ ]*\) /\1\2\3\4\n/g' plop 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 $
;-))
C'est bizarre. Chez moi ça ne marche pas. Est-ce parce que mes champs sont tabulés ?
Cordialement
Cordialement
Salut
J'obtiens ceci :
52 54 52 52 48 9 53 51 50 50 48 9 54 49 53 48 48 9 54 55 50 54 48 9 52 54 53 48 48 9 53 51 50 56 48 9 54 49 53 54 48 9 54 55 51 50 48 9 52 54 53 48 48 9 53 51 51 52 48 9 54 49 54 50 48 9 54 55 51 56 48 9 52 54 53 54 48 9 53 51 52 48 48 9 54 49 54 56 48 9 54 55 52 52 48 9 52 54 53 54 48 9 53 51 52 54 48 9 54 49 55 52 48 9 54 55 53 48 48 9 52
Une idée ?
J'obtiens ceci :
52 54 52 52 48 9 53 51 50 50 48 9 54 49 53 48 48 9 54 55 50 54 48 9 52 54 53 48 48 9 53 51 50 56 48 9 54 49 53 54 48 9 54 55 51 50 48 9 52 54 53 48 48 9 53 51 51 52 48 9 54 49 54 50 48 9 54 55 51 56 48 9 52 54 53 54 48 9 53 51 52 48 48 9 54 49 54 56 48 9 54 55 52 52 48 9 52 54 53 54 48 9 53 51 52 54 48 9 54 49 55 52 48 9 54 55 53 48 48 9 52
Une idée ?
Salut,
Oui, tu as des tabulations.
Tu vois le 9 qui se répète? C'est le code ascii pour tabulation
52 54 52 52 48 9 53 51 50 50 48 9 54 49 53 48 48 9 54 55 50 54 48 9 52 54 53 48 48 9 53 51 50 56 48 9 54 49 53 54 48 9 54 55 51 50 48 9 52 54 53 48 48 9 53 51 51 52 48 9 54 49 54 50 48 9 54 55 51 56 48 9 52 54 53 54 48 9 53 51 52 48 48 9 54 49 54 56 48 9 54 55 52 52 48 9 52 54 53 54 48 9 53 51 52 54 48 9 54 49 55 52 48 9 54 55 53 48 48 9 52
~
Oui, tu as des tabulations.
Tu vois le 9 qui se répète? C'est le code ascii pour tabulation
52 54 52 52 48 9 53 51 50 50 48 9 54 49 53 48 48 9 54 55 50 54 48 9 52 54 53 48 48 9 53 51 50 56 48 9 54 49 53 54 48 9 54 55 51 50 48 9 52 54 53 48 48 9 53 51 51 52 48 9 54 49 54 50 48 9 54 55 51 56 48 9 52 54 53 54 48 9 53 51 52 48 48 9 54 49 54 56 48 9 54 55 52 52 48 9 52 54 53 54 48 9 53 51 52 54 48 9 54 49 55 52 48 9 54 55 53 48 48 9 52
~
Re,
lami20j@debian-acer:~$ sed 's/\(\([^\t]\+\t\)\{4\}\)/\1\n/g' fic 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Rien n'a changé pour moi.
Mon fichier s'affiche toujours comme ça :
46440 53220 61500 67260 46500 53280 61560 67320 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 54060 62400 68100 46800 54120 62520 68160 46800 54180 62580 68220
Mon fichier s'affiche toujours comme ça :
46440 53220 61500 67260 46500 53280 61560 67320 46500 53340 61620 67380 46560 53400 61680 67440 46560 53460 61740 67500 46560 53520 61800 67560 46620 53580 61860 67620 46620 53640 61920 67680 46680 53700 62040 67740 46680 53760 62100 67800 46740 53820 62160 67860 46740 53940 62220 67920 46740 54000 62340 67980 46800 54060 62400 68100 46800 54120 62520 68160 46800 54180 62580 68220
Oups grillé, et en plus de fort belle manière ;-))
J'oublie toujours les références arrières ;-(
J'oublie toujours les références arrières ;-(
Ben, non, tu n'oublies pas. Tu as utilisé même 4 ;-)
En revanche [^ ] est plutôt mieux que mon [0-9], dans le cas ou les champs contiennent autres chose que chiffre ou espace ;-)
Enfin je voulais dire le groupement plutôt, mais tu m'auras compris ;-))
Oui, c'était juste pour te charrier un peu ;-)