The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > UNIX pour les nuls Questions et réponses
.
google unix.com



UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus!

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Comment lire et comparer plusieurs champs dans une colonne à la fois ahjiefreak De programmation et de script Shell 1 06-19-2008 11:08 AM
Remplacer les 3 champs avec des valeurs nulles dans le fichier vukkusila De programmation et de script Shell 1 09-12-2007 01:10 AM
Mélanger avec un datafile Master datafile, émergent! onthetopo De programmation et de script Shell 6 05-12-2007 06:36 AM
rechercher et remplacer les différents domaines tungaw2004 UNIX pour les nuls Questions et réponses 3 03-29-2007 03:16 AM
remplacer une section dans un fichier de données Paprika De programmation et de script Shell 4 06-17-2005 08:48 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-20-2008
MrCarter MrCarter is offline
Registered User
  
 

Date d'inscription: juin 2008
Messages: 9
Comment puis-je lire / rechercher / remplacer les champs dans un fichier de données csv?

bonjour.

Je suis un peu novice ici, alors s'il vous plaît soyez patient. Ma pierre d'achoppement lors du chargement en CSVS ORACLE tables est la suivante:

J'ai besoin de lire un fichier de données csv, vérifier plusieurs champs dans chaque ligne, et si l'un des champs déclaré ZERO A seulement [au lieu de champ de date prévu YYYYMONDD], puis le remplacer par un null / blanc nature.

J'ai eu une remise à:

cat <datafile> | awk '$ 5 \u003d\u003d "0" ( "")) END (print ";
cat <datafile> | awk '$ 8 \u003d\u003d "0" ( "")) END (print "; .. etc.

.. hélas ça n'a pas marché ..

tous les conseils / commentaires très appréciés

Steven.
  #2 (permalink)  
Old 06-20-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4,300
Publier un échantillon de la datafile csv et la sortie désirée.

Observe
  #3 (permalink)  
Old 06-20-2008
MrCarter MrCarter is offline
Registered User
  
 

Date d'inscription: juin 2008
Messages: 9
merci pour la réponse rapide ..

csv les deux premières lignes de ressembler à:

Code:
13426,Williams,Robyn,Robyn,20031106,0,0,20080421,0,NASP39,Casual Sport & Recreation Ass,43.24,FACI,E,FASP,SUPP,SP,NASP35,20080421,0,100,FACI,V,FASP,SUPP,SP,0,0,Ms,FT,FT,SUB
15721,Clinton,Hilary,Hilary,20041101,hs0jo,poppy@aol.com,20080601,0,HSL236,Project Manager,56.76,700,A,700,ACAD,PB,V32636,20071207,20080731,0.36,700,V,HSEN,VLEC,FL,0,0,Dr,PT,FT,SUB
.. et la sortie désirée est entrée en vigueur dans notre base de données ORACLE, via sqlldr .. (excuses si ce n'est pas ce que vous voulez dire ..)

thanks again ..

Steven

Dernière édition par Yogesh Sawant; au 06.20.2008 04:54 AM.. Motif: Ajout de balises de code
  #4 (permalink)  
Old 06-20-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4,300
Essayez ceci:

Code:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if($i=="0"){$i=""}}}1' file
Observe
  #5 (permalink)  
Old 06-20-2008
MrCarter MrCarter is offline
Registered User
  
 

Date d'inscription: juin 2008
Messages: 9
.. un message d'erreur est renvoyé lorsque j'essaie d'exécuter ce soit par lui-même ou dans un script - je ne suis pas tourner à droite?

$ Cat SLsTester_DataFile.csv | awk BEGIN (FS \u003d OFS \u003d","}{ for (i \u003d 1; i <\u003d NF; i + +) (if ($ i \u003d\u003d "0") ($ i \u003d""}} 1) 'file;

.. l'erreur compte tenu de la teneur suivante:

-bash: erreur de syntaxe près de jeton inattendu »(«

votre aide est très appréciée ..

ce qui concerne, Steven
  #6 (permalink)  
Old 06-20-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4,300
Ne pas la pipe le résultat de la commande cat sur le fichier. Cela est suffisant:

Code:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if($i=="0"){$i=""}}}1' SLsTester_DataFile.csv
Vous pouvez rediriger la sortie vers un fichier comme suit:

Code:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if($i=="0"){$i=""}}}1' SLsTester_DataFile.csv > NewFile
Observe
  #7 (permalink)  
Old 06-20-2008
NYankz NYankz is offline
Registered User
  
 

Date d'inscription: juin 2008
Posts: 12
Si vous ne voulez modifier la valeur, si c'est une date non valide sur les spots que vous avez cités:

awk '(FS \u003d OFS \u003d","} $ 5 \u003d\u003d "0" ($ 5 \u003d "") $ 8 \u003d\u003d "0" ($ 8 \u003d "" $ 9) \u003d\u003d "0" ($ 9 \u003d "") $ 19 \u003d\u003d "0" ($ 19 \u003d "") $ 20 \u003d\u003d "0" ($ 20 \u003d "") $ 27 \u003d\u003d "0" ($ 27 \u003d "0") (print $ 0) 'file.csv

Dernière édition par NYankz; au 06.20.2008 11:11 AM.. Motif: fixe
Closed Thread

Bookmarks

Tags
solaris

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:46 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0