![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Tilføjelse af kolonner i to filer | chandra321 | Shell Programmering og Scripting | 7 | 05-06-2009 01:11 PM |
| tilføje kolonner | Kelam_Magnus | Shell Programmering og Scripting | 12 | 02-10-2009 10:56 AM |
| sammenligne filer - tilføjelse / subtraktion / formatering kolonner | oabdalla | Shell Programmering og Scripting | 7 | 06-13-2008 04:20 AM |
| Perl: tilføje kolonner i CSV-fil med oplysninger i de enkelte | dolo21taf | Shell Programmering og Scripting | 1 | 03-05-2008 02:52 AM |
| Tilføjelse kolonner til Excel-filer ved hjælp Perl | dolo21taf | Shell Programmering og Scripting | 1 | 02-20-2008 07:13 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Tilføjelse af kolonner i en fil
Jeg ønsker at vælge den første kolonne fra et dagligt fil kaldet foo.csv. Resultatet er skrevet til filen foo.txt. Øjeblikket følgende script bruges til at:
cut-d,-f 1 foo.csv> foo.txt Et typisk resultat ville udbytte: A12 A45 B11 B67 Hvad der skal ske ud er, at to kolonner skal indsættes før skriver til filen, nemlig en kode (siger »ABC«) og den aktuelle dato, således at et typisk resultat ville udbytte: abc 2008-05-20 A12 abc 2008-05-20 A45 abc 2008-05-20 B11 abc 2008-05-20 B67 Hvordan kan dette nås, navnlig hvis den dato (kolonne 2) bør dags dato? Sidst redigeret af Figaro; 05-16-2008 på 05:37 PM.. Årsag: Forenkling af problemet |
|
||||
|
Tak for dit svar, det fungerede udmærket. Et spørgsmål: Den afgrænsningstegn du antyder, er et rum. Hvordan kan dette ændres til et komma ','? Og for the record ", hvis fulde erklæring skal: Code:
cut -d, -f 1 foo.csv | awk -v d="$(date "+%Y-%m-%d")" '{print "abc", d, $1}' >foo.txt
Hvis der er flere effektivitetsgevinster i denne erklæring, der skal foretages, så lad mig det vide. På forhånd tak |
|
||||
|
awk er fuldt ud i stand til at gøre arbejdet i skære på samme tid, så ja, det kan optimeres lidt. -F, sæt awk's område separator til komma og OFS \u003d FS forårsager det at bruge det som outputfelt separatormoduler samt [Input] Field Separator. Code:
awk -F, -v d="$(date "+%Y-%m-%d")" '{ OFS=FS; print "abc", d, $1 }' foo.csv >foo.txt
|
|
||||
|
Jeg har følgende problem, når fuldbyrdende dette script. Det i øjeblikket ser ud som følger: Code:
awk -F, -v dt="$(date "+%Y-%m-%d")" '{ OFS=FS; print "abc", dt, $1 }' foo.csv > foo.txt
Svaret er "Ulovlig variabel navn." De første par linjer af input filen foo.csv ser ud som følger: SG70, B3B0M92, ANN8132R7036 ,25-juni-08 SG68, B3B2J97, ANN8132R6871 ,25-juni-08 ST71, B2Q4T68, ANN8132N4540 ,25-juni-08 SG67, B3B2J75, ANN8132R6798 ,24-juni-08 så det er en liste over de koder, som koder i første kolonne er der kun behov. Prepended med koden "abc" og den dato, den resulterende fil foo.txt bør holde følgende oplysninger: "abc" ,2008-06-25, SG70 "abc" ,2008-06-25, SG68 "abc" ,2008-06-25, ST71 "abc" ,2008-06-25, SG67 Hvordan kan jeg rette op på de ovennævnte kode og helst stadig holde alting på én linie? Thanks in advance |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|