The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Het toevoegen van kolommen van twee bestanden chandra321 Programmeren en Shell Scripting 7 05-06-2009 01:11 PM
het toevoegen van kolommen Kelam_Magnus Programmeren en Shell Scripting 12 02-10-2009 10:56
het vergelijken van bestanden - toevoeging / aftrekken / kolommen opmaken oabdalla Programmeren en Shell Scripting 7 06-13-2008 04:20
Perl: het toevoegen van kolommen in het CSV-bestand met informatie in elke dolo21taf Programmeren en Shell Scripting 1 03-05-2008 02:52
Het toevoegen van kolommen aan Excel-bestanden met behulp van Perl dolo21taf Programmeren en Shell Scripting 1 02-20-2008 07:13

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-16-2008
Figaro figaro is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 268
Het toevoegen van kolommen in een bestand

Ik wil de selectie van de eerste kolom uit een dagelijks bestand genaamd foo.csv. Het resultaat is geschreven naar bestand foo.txt. Momenteel zijn de volgende script wordt gebruikt voor dat:
cut-d,-f 1 foo.csv> foo.txt

Een typisch resultaat zou opleveren:
A12
A45
B11
B67

Wat moet er gebeuren in aanvulling is dat twee kolommen moeten worden toegevoegd voordat het schrijven naar bestand, namelijk een code in (bijvoorbeeld 'ABC') en de huidige datum, zodanig dat een typisch resultaat zou opleveren:
abc 2008-05-20 A12
abc 2008-05-20 A45
abc 2008-05-20 B11
abc 2008-05-20 B67

Hoe kan dit worden bereikt in het bijzonder wanneer de datum (kolom 2) moet de datum van vandaag?

Laatst gewijzigd door Figaro; op 05.16.2008 05:37 PM.. Reden: Vereenvoudiging van het probleem
  #2 (permalink)  
Old 05-16-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: november 2007
Posts: 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
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 268
Dank u voor uw reactie, het werkte heel goed. Een vraag:

De scheidingstekens u suggereert is een ruimte. Hoe kan dit worden veranderd in een komma ','?

En voor de record, de volledige verklaring moet worden:

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

Als er meer efficiency in deze verklaring worden gemaakt, laat het me weten.

Ik dank u bij voorbaat
  #4 (permalink)  
Old 05-17-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
awk perfect in staat is om de taak van snijden op dezelfde tijd, dus ja, dat kan worden geoptimaliseerd een beetje. -F, bevat het gebied awk scheidingsteken te komma en OFS \u003d FS oorzaken te gebruiken als de Output Veld scheidingsmodules evenals [Input] Veld scheidingsmodules.


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
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Posts: 268
Ik heb het volgende probleem bij het uitvoeren van dit script. Het ziet er momenteel als volgt:

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

Het antwoord is "Illegale variabele naam."

De eerste paar regels van het input bestand foo.csv er als volgt uitzien:
SG70, B3B0M92, ANN8132R7036 ,25-jun-08
SG68, B3B2J97, ANN8132R6871 ,25-jun-08
ST71, B2Q4T68, ANN8132N4540 ,25-jun-08
SG67, B3B2J75, ANN8132R6798 ,24-jun-08

dus het is een lijst van codes die de codes in de eerste kolom zijn alleen nodig. Prepended met de code "abc" en de datum, het resulterende bestand foo.txt moet de volgende gegevens:

"abc" ,2008-06-25, SG70
"abc" ,2008-06-25, SG68
"abc" ,2008-06-25, ST71
"abc" ,2008-06-25, SG67

Hoe kan ik de bovenstaande code en bij voorkeur nog steeds alles op een lijn?

Thanks in advance
  #6 (permalink)  
Old 07-21-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
Probeer met nawk, bawk, mawk, gawk, of XPG4 awk als u een van die op uw systeem geïnstalleerd.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 03:36.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0