Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1080 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  séparer les champs d'un fichier *.txt par des " " (help)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

séparer les champs d'un fichier *.txt par des " " (help)

n°1736096
Bok_75
Posté le 23-05-2008 à 10:57:23  profilanswer
 

Bonjour, j'ai un fichier *.txt avec un nombre important de données organisées comme ceci :  
 
xxx zzz yyy
xxx zzz yyy            
 
Je voudrais en une simple manip arriver à ceci pour importer sans difficulté ce ces données dans une table.
 
"xxx" "zzz" "yyy"
"xxx" "zzz" "yyy"
 
 :pt1cable:

mood
Publicité
Posté le 23-05-2008 à 10:57:23  profilanswer
 

n°1736119
Elmoricq
Modérateur
Posté le 23-05-2008 à 11:22:14  profilanswer
 

En quel langage ? Sous quel OS ?

n°1736120
babasss
Posté le 23-05-2008 à 11:27:19  profilanswer
 

C'est des espaces ou des tabulations ? Les chaînes de caractère ne contiennent jamais d'espace ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1736125
Bok_75
Posté le 23-05-2008 à 11:35:50  profilanswer
 

Elmoricq a écrit :

En quel langage ? Sous quel OS ?


 
Je suis sous Linux (Debian)
 

babasss a écrit :

C'est des espaces ou des tabulations ? Les chaînes de caractère ne contiennent jamais d'espace ?


 
Tabulations, jamais d'espace entre les caractères, ce sont des @mac @ip date ...

n°1736126
Elmoricq
Modérateur
Posté le 23-05-2008 à 11:42:49  profilanswer
 

Je déplace le sujet dans shell/batch alors.

 

Personnellement j'écrirais ça en awk :

awk '{ for(i=1; i <= NF; i++) { printf("\"%s\" ", $i); } printf("\n" ); }' tonfichier

 

Ou alors en PERL :

perl -p -e 's/(\w+)/"$1"/g;' tonfichier

 

Doit y avoir moyen avec sed aussi, mais j'ai toujours autant de mal avec les regexp POSIX.


Message édité par Elmoricq le 23-05-2008 à 11:52:49
n°1736127
babasss
Posté le 23-05-2008 à 11:43:51  profilanswer
 

Tu veux un script ? Si oui, répétitivité du script ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1736179
Bok_75
Posté le 23-05-2008 à 12:25:30  profilanswer
 

Merci Elmoricq, je vais essayer d'appliquer ça.  
 
C'est assez nouveau pour moi, mais je suis en stage, donc là pour apprendre.  
 
Thx

n°1736237
Bok_75
Posté le 23-05-2008 à 14:21:02  profilanswer
 

Alors, je n'arrive pas à appliquer le awk ... avec le perl j'obtiens un résultat, pas le bon mais c'est déjà un début ...
 
mais petite rectification :  
 
c'est un fichier *.dat (je précise on ne sait jamais ...)
 
les champs sont séparés par des tabulations, mais malheureusement pour les @mac je n'obtient pas "0:1:2:4:92:63" mais "0":"1":"2":"4":"92":"63" ...  
 
Une idée ?

n°1736254
Bok_75
Posté le 23-05-2008 à 14:34:58  profilanswer
 

J'ai réussi à applique le awk  
 

awk '{ for(i=1; i <=NF; i++) { printf("\%s\"          ", $i); } printf("\n" ); }' abc.dat


 
Par contre le résultat est le suivant :  
 

\0:b:du:93:5c:b0"          \169.224.8.63"          \1186567540"

 
 
Si vous pouviez m'indiquer comment remplacer le "\" par une guillemet ...


Message édité par Bok_75 le 23-05-2008 à 14:36:14
n°1736261
Elmoricq
Modérateur
Posté le 23-05-2008 à 14:41:21  profilanswer
 

Tu as mal recopié le awk, tout simplement.

 

Il s'agit d'échapper le caractère guillemet pour éviter qu'il ne soit directement interprété par awk. On écrit donc : \"

Message cité 1 fois
Message édité par Elmoricq le 23-05-2008 à 14:41:48
mood
Publicité
Posté le 23-05-2008 à 14:41:21  profilanswer
 

n°1736262
Bok_75
Posté le 23-05-2008 à 14:43:36  profilanswer
 

Elmoricq a écrit :

Tu as mal recopié le awk, tout simplement.  
 
Il s'agit d'échapper le caractère guillemet pour éviter qu'il ne soit directement interprété par awk. On écrit donc : \"


 
En effet [:angelfire]
 
Merci  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  séparer les champs d'un fichier *.txt par des " " (help)

 

Sujets relatifs
[RESOLU] Récupérer des valeurs par une requête ldap_search[Java] Est-il possible de générer un fichier Word ?
[JSP/Html/JS] Champs obligatoires dans un formulairefichier jar
une question sur un fichier .bat svpcréation fichier excel par php
[Résolu] lecture fichier ruby!Utiliser fichier compilé
sup des caracteres et rajouter un prefix dans nom de fichier [RESOLU]Comment lire les X derniers caracteres d'un fichier à distance?
Plus de sujets relatifs à : séparer les champs d'un fichier *.txt par des " " (help)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR