Gå til innhold

Konvertering av dato i shell script [ løst ]


Anbefalte innlegg

Utgangspunktet mitt er en fil som denne:

 

00:00:00.000,01-Sep-2008,1.000

00:10:00.000,01-Sep-2008,0.980

00:20:00.000,01-Sep-2008,0.950

00:30:00.000,01-Sep-2008,0.910

00:40:00.000,01-Sep-2008,0.870

00:50:00.000,01-Sep-2008,0.830

 

Programmet denne filen skal leses inn i må datoformat som ser slik ut:

200809010000 -1

200809010010 -0.98

200809010020 -0.95

200809010030 -0.91

200809010040 -0.87

 

Måten jeg gjør dette på nå, er at jeg åpner den første filen i 'vi' og endrer måneden fra -Sep- til ,09,. Og tilsvarende for andre måneder. Deretter konverterer jeg med følgende awk-linje:

 

awk -F",|:" '{printf "%d%02d%02d%02d%02d %s\n",$6,$5,$4,$1,$2,$7*-1}'

 

Jeg ønsker å kunne konvertere utgangspunktet direkte i et script, uten å måtte gå via 'vi'.

 

Er det noen som har noen tips om hvordan jeg skal gå frem for å få dette til?

Endret av bobafett
Lenke til kommentar
Videoannonse
Annonse

Da fant jeg en løsning som virker:

 

cat $1 | sed \

-e 's/-Jan-/,01,/' \

-e 's/-Feb-/,02,/' \

-e 's/-Mar-/,03,/' \

-e 's/-Apr-/,04,/' \

-e 's/-May-/,05,/' \

-e 's/-Jun-/,06,/' \

-e 's/-Jul-/,07,/' \

-e 's/-Aug-/,08,/' \

-e 's/-Sep-/,09,/' \

-e 's/-Oct-/,10,/' \

-e 's/-Nov-/,11,/' \

-e 's/-Dec-/,12,/' | \

\

awk -F",|:" '{printf "%d%02d%02d%02d%02d %s\n",$6,$5,$4,$1,$2,$7*-1}'

 

 

....enkelt og greit.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...