![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 |
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
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 |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|