The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Hur man läser och jämför flera fält i en kolumn på samma gång ahjiefreak Shell-programmering och Skript 1 06-19-2008 12:08
Ersätt 3 fält med null i filen vukkusila Shell-programmering och Skript 1 09-12-2007 02:10
Kombinera en datafile med Master datafile, framväxande! onthetopo Shell-programmering och Skript 6 05-12-2007 07:36
söka och ersätta olika områden tungaw2004 UNIX for Dummies Frågor & Svar 3 03-29-2007 04:16
ersätta en del i en datafile Paprika Shell-programmering och Skript 4 06-17-2005 09:48

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 06-20-2008
MrCarter MrCarter is offline
Registered User
  
 

Join Date: juni 2008
Inlägg: 9
Hur läser jag / tycker / byt fält i en csv datafile?

hej.

Jag är lite novis här så ha tålamod. Min stötesten vid lastning CSVS i Oracle-tabeller är här:

Jag måste läsa en CSV-datafil, kolla flera områden i varje linje, och om någon av angivna fälten innehåller A noll [i stället för YYYYMONDD datumfält väntas] och sedan ersätta det med ett null / blank karaktär.

Jag fick prova på:

katt <datafile> | awk '$ 5 \u003d\u003d "0" ( "") END (print)';
katt <datafile> | awk '$ 8 \u003d\u003d "0" ( "") END (print)', .. osv.

.. tyvärr det fungerade inte ..

alla råd / kommentarer mycket uppskattat

Steven.
  #2 (permalänk)  
Old 06-20-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.315
Post ett urval av csv datafil och önskad effekt.

Hälsningar
  #3 (permalänk)  
Old 06-20-2008
MrCarter MrCarter is offline
Registered User
  
 

Join Date: juni 2008
Inlägg: 9
tack för det snabba svaret ..

csv första två raderna ser ut:

Kod:
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
.. och önskad effekt är giltig post i vår Oracle-databas via sqlldr .. (ber om ursäkt thats inte vad du menade ..)

tack igen ..

Steven

Senast redigerad av Yogesh Sawant; 06-20-2008 at 05:54.. Orsak: lagt till kod taggar
  #4 (permalänk)  
Old 06-20-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.315
Prova detta:

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

Join Date: juni 2008
Inlägg: 9
.. ett fel som returneras när jag försöker köra här genom att antingen själv eller i ett manus - är jag inte köra det rätt?

$ 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;

.. det felet lyder:

-bash: syntax error near oväntad token "("

din hjälp är mycket uppskattat ..

gäller Steven
  #6 (permalänk)  
Old 06-20-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.315
Inte rör resultatet av katt kommandot till filen. Detta är tillräckligt:

Kod:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if($i=="0"){$i=""}}}1' SLsTester_DataFile.csv
Du kan dirigera om utmatningen till en fil på följande sätt:

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

Join Date: juni 2008
Inlägg: 12
Om du bara vill ändra värdet om det är ett ogiltigt datum på de platser du i listan:

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

Senast redigerad av NYankz; 06-20-2008 at 12:11.. Orsak: fast
Closed Thread

Komihåglista

Taggar
Solaris

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 03:59.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0