|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Samuel Lombart Inscription : octobre 2009 Messages : 5 ![]() |
Bonjour,
Est-il possible de découper un fichier séquentiel en line séquentiel ? Je souhaiterais pouvoir faire un retour à la ligne tous les 128 caractères de mon fichier sans passer par un programme mais juste par un script shell. Merci d'avance pour vos réponses |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 4 224 ![]() |
un petit sed suffit pour faire ce genre d'action oui
|
|
|
00
|
|
|
#3 | |
![]() ![]() Inscription : février 2008 Messages : 2 756 ![]() |
Bonjour,
Citation:
read -n 128 dans une boucle while, pour lire/parcourir un fichier. |
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Samuel Lombart Inscription : octobre 2009 Messages : 5 ![]() |
Je dois mal utiliser la commande sed alors.
J'ai réussi sur un fichier de petite taille mais quand je le fais sur un fichier contenant une ligne de 20000 caractères, j'obtiens un fichier vide. Quand je disais pas par programme, je voulais plutôt dire pas par un langage autre que Shell Unix. Je ne connais pas bash. Mes enregistrements commencent tous par 002 donc, j'avais fait : Code :
sed -e 's/ 002/ \n002/g' fichier1 > fichier2 |
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : février 2008 Messages : 2 756 ![]() |
Citation:
tu veux faire du 100% shell, ou tu peux utiliser des programmes externes ? oused, comme fold sont des programmes externes. |
|
|
|
30
|
|
|
#6 |
|
Invité de passage
![]() Samuel Lombart Inscription : octobre 2009 Messages : 5 ![]() |
Les réponses que vous me faites me conviennent.
Je ferais le test jeudi. Je maîtrise pas forcément UNIX et pour moi, la commande sed faisait partie d'Unix dans le sens où je la trouve dans le "man". Je ne voulais pas utiliser un langage comme le c ou le java. Je vous remercie pour votre aide et je confirmerais ou non si ça a marché. Bonnes fêtes. |
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 795 ![]() |
Bonjour.
Citation:
Des langages shell t'en as une pelleté dont ksh, bash ou autre. Même Perl ou PHP ou Python ou d'autres peuvent être utilisés comme des langages shell via un interpréteur console (/usr/bin/perl, /usr/bin/php, etc). Bon bref, sed et awk sont des programmes (voire même un langage complet pour le cas de awk avec diverses implémentations possibles : gawk, mawk...) indépendant. Mettre du awk dans son script ou mettre du php/perl ou autre, ça revient à utiliser des langages/programmes externes. Les commandes Unix sont elles mêmes des programmes externes et indépendants du shell (ls, cat, grep, ...). Alors ça dépend ce que tu attend, mais de toute façon il est assez rare qu'un script shell bash, sh, ksh ou autre ne fasse pas au moins un appel à un programme externe. Sans sed, awk et grep notamment, le parsing reste assez limité. Cordialement, Idriss |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Samuel Lombart Inscription : octobre 2009 Messages : 5 ![]() |
En fait, nous recevons un fichier séquentiel d'une entreprise extérieure via CFT. Il semblerait que cet outil ne permette pas de transférer le fichier directement au format line séquentiel. Nous avons donc besoin de transformer le fichier reçu avant que celui-ci passe dans notre chaîne de traitement en korn-Shell.
Merci pour les explications, je pratique simplement le monde Unix sans être un spécialiste. Cordialement |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Idriss NeumannConsultant en SSII et auditeur au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 3 795 ![]() |
Bonjour.
Étant donné le besoin, je pense personnellement qu'il n'y a aucun mal à utiliser la commande sed dans un script ksh étant donné que cette commande est une commande présente de base dans la plupart des Unix d'actualité Fin en tout cas, faut choisir ce qui est le plus adapté en fonction de ce dont tu dispose si ta problématique c'était uniquement de ne pas avoir à installer quelque chose en plus. Si sed est déjà là sur les machines cibles, n'hésites pas. Idriss |
|
00
|
|
|
#10 |
|
Invité de passage
![]() Samuel Lombart Inscription : octobre 2009 Messages : 5 ![]() |
Bonjour,
J'ai fait le test des instructions données. L'instruction ne semble pas fonctionner sur un fichier contenant plusieurs lignes de 4090 caractères ou plus. Par contre l'instruction répond complètement à mon besoin. Je vous remercie pour votre aide. Bonne fêtes de fin d'année. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com