Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix

Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix

Réponse
 
Outils de la discussion
Vieux 13/02/2008, 17h19   #1 (permalink)
Membre à l'essai
 
Date d'inscription: juillet 2006
Messages: 40
Par défaut Unix restriction sur sed

Bonjour,
Je traite un fichier de type csv (séparateur ; ) dans lequel je souhaite éliminer des caractères blanc (plusieurs milliers)
pour ce faire j'utilise la commande
Code :
sed -e 's/; */;/g' fic_origin > fic_dest
Pour remplacer (un ; et plusieurs blancs) par (un point virgule unique).
Cela fonctionne bien sur les machines de dev et de test mais, vous l'avez deviné , pas sur la machine de prod.

Est-ce que quelqu'un connaitrait une restriction à l'utilisation de sed (taille des lignes par ex) ?
Vincent_D est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/02/2008, 01h40   #2 (permalink)
Membre Confirmé
 
Avatar de iblis
 
Date d'inscription: janvier 2007
Localisation: Berlin - ?
Âge: 42
Messages: 296
Par défaut

Tout dépend de la version de sed. Tu peux avoir intérêt à (re-)compiler sed.

Code :
6.6. Known limitations among sed versions

   Limits on distributed versions, although source code for most
   versions of free sed allows for modification and recompilation.
   The term "no limit" when used below means there is no "fixed"
   limit. Limits are actually determined by one's hardware, memory,
   operating system, and which C library is used to compile sed.

6.6.1. Maximum line length

      GNU sed 3.02: no limit
      GNU sed 2.05: no limit
      sedmod 1.0:   4096 bytes
      HHsed:        4000 bytes

6.6.2. Maximum size for all buffers (pattern space + hold space)

      GNU sed 3.02: no limit
      GNU sed 2.05: no limit
      sedmod 1.0:   4096 bytes
      HHsed:        4000 bytes

6.6.3. Maximum number of files that can be read with read command

      GNU sed 3.02: no limit
      GNU sed 2.05: total no. of r and w commands may not exceed 32
      sedmod 1.0:   total no. of r and w commands may not exceed 20

6.6.4. Maximum number of files that can be written with 'w' command

      GNU sed 3.02: no limit (but typical Unix is 253)
      GNU sed 2.05: total no. of r and w commands may not exceed 32
      sedmod 1.0:   10
      HHsed:        10

6.6.5. Limits on length of label names

      BSD sed:      8 characters
      GNU sed 3.02: no limit
      GNU sed 2.05: no limit
      HHsed:        no limit

6.6.6. Limits on length of write-file names

      BSD sed:      40 characters
      GNU sed 3.02: no limit
      GNU sed 2.05: no limit
      HHsed:        no limit

6.6.7. Limits on branch/jump commands

      HHsed:        50

   As a practical consequence, this means that HHsed will not read
   more than 50 lines into the pattern space via an N command, even if
   the pattern space is only a few hundred bytes in size. HHsed exits
   with an error message, "infinite branch loop at line {nn}".
Source : http://www.faqs.org/faqs/editor-faq/sed/
iblis est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 14/02/2008, 01h44   #3 (permalink)
Membre Confirmé
 
Avatar de iblis
 
Date d'inscription: janvier 2007
Localisation: Berlin - ?
Âge: 42
Messages: 296
Par défaut

Pour contourner le problème (si tu as perl d'installé), tente un :
Code :
perl -lpe 's/; */;/g' fic_origin
iblis est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 14/02/2008, 12h09   #4 (permalink)
Membre à l'essai
 
Date d'inscription: juillet 2006
Messages: 40
Par défaut Ca marche

La solution Perl résoud mon problème. Merci beaucoup.
Vincent_D est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 22h37.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations