![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
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. |
|
||||
|
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 tack igen .. Steven Senast redigerad av Yogesh Sawant; 06-20-2008 at 05:54.. Orsak: lagt till kod taggar |
|
||||
|
.. 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 |
|
||||
|
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
Kod:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++){if($i=="0"){$i=""}}}1' SLsTester_DataFile.csv > NewFile
|
|
||||
|
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 |