Lijkt bijna hogere wiskunde .................. en ik ben al een tijdje van school af
.
Ik vond nog de printf functie en die lost het ook op:
{printf("%3s %3s %4d %02d %02d %5.2f %5.2f %5.2f %5.2f %10d\n", ticker, naam, datum,$3,$1,$2,$4,$5,$6,$7,$8)}'
met %02d = numeriek, 2 pos. 0 = aanvullen met voorloopnullen.
En meteen de volgende (die kerel blijft bezig hé)
Dit lukt:
{ticker="YUII"} {naam="Yuhe International, Inc"} worden variabelen die af te drukken zijn (zie boven)
De datum moet speciaal gemaakt worden:
{datum= printf("%4d %02d %02d",$3,$1,$2)} wekt dus niet syntax error at or near printf
Waarom dit gedoe? Ik wil de naam als 1 veld zien ondanks de spaties.
Wat ik tot dusver heb:
Inputbestand:
Aug 16, 2010 8.90 8.90 8.78 8.84 76,038
Aug 13, 2010 8.96 9.00 8.96 8.96 29,102
Aug 12, 2010 8.54 9.02 8.53 8.91 20,343
Aug 11, 2010 8.85 9.00 8.53 8.80 22,102
Aug 10, 2010 9.43 9.43 8.85 8.95 30,036
awk routine:
mawk 'BEGIN{OFS=","}{gsub(/\,/,"")} \
{ticker="YUII"} {naam="Yuhe International, Inc"} \
{gsub(/Jan/,"01")}{gsub(/Feb/,"02")}{gsub(/Mar/,"03")}{gsub(/Apr/,"04")}{gsub(/May/,"05")}{gsub(/Jun/,"06")} \
{gsub(/Jul/,"07")}{gsub(/Aug/,"08")}{gsub(/Sep/,"09")}{gsub(/Oct/,"10")}{gsub(/Nov/,"11")}{gsub(/Dec/,"12")} \
{datum= printf("%4d %02d %02d",$3,$1,$2)} \
{printf("%3s %3s %4d %02d %02d %5.2f %5.2f %5.2f %5.2f %10d\n", ticker,naam, datum,$3,$1,$2,$4,$5,$6,$7,$8)}' \
/home/bauke/YUIIkoersen > /home/bauke/tmp
mawk 'BEGIN{OFS=","}{print $1,$2,$3$4$5,$6,$7,$8,$9,$10}' /home/bauke/tmp > /home/bauke/tmp2
Hij zal nu wel fout gaan want ik was bezig met het aanbrengen van de datum etc., maar het geeft je vast een idee. (Hoe slecht dit is aangepakt bijvoorbeeld)
En dan ben ik er nog niet, want hij moet het met meerdere bestanden doen (maar dat is het volgende (1 voor 1)
Heel erg bedankt voor de hulp!
Bauke