The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



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

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-16-2008
Figaro figaro is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Posts: 271
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
  #2 (permalink)  
Old 05-16-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 321

Code:
awk -v d="$(date "+%Y-%m-%d")" '{print "abc", d, $1}' foo.csv > foo.txt

  #3 (permalink)  
Old 05-17-2008
Figaro figaro is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Posts: 271
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
  #4 (permalink)  
Old 05-17-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
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

  #5 (permalink)  
Old 06-25-2008
Figaro figaro is offline
Registreret Bruger
  
 

Join Date: Jan 2007
Posts: 271
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
  #6 (permalink)  
Old 07-21-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
Prøv med nawk, bawk, mawk, gawk eller XPG4 awk hvis du har nogen af dem der er installeret på dit system.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 01:14 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0