
Captain Crunch
Gott
Hallo,
ich möchte aus einer Datei, die dieses Format als Inhalt hat:
das Datumsformat ändern. Dazu habe ich mit "cut" die 2. Spalte extrahiert und in dem array "date" gespeichert. dann habe ich erneut mit "cut" das Jahr, den Monat und den Tag in einer Variablen gespeichert, um sie dann anschließend mittels "sed" neu formatiert wieder in die 2. Spalte einzufügen, in einer anderen Datei.
Hier der gesamte Code:
Bis zum 1. echo scheint alles richtig zu sein. Der sed-Befehl funktioniert grundsätzlich auch, aber er gibt nicht pro zeile ein datum aus, sondern liefert folgenden output:
Gibt also jeden Tag etliche male aus, obwohl es pro Tag nur einen, maximal 3 Einträge gibt
Wo ist mein Denkfehler? Ist bestimmt nur eine Kleinigkeit, komme aber gerade nicht drauf :-/
ich möchte aus einer Datei, die dieses Format als Inhalt hat:
Code:
1;23.03.2009;15:40;02:30
1;25.03.2009;05:18;23:35
3;26.03.3009;09:44;14:05
3;27.03.2009;06:20;13:10
Hier der gesamte Code:
Code:
#!/bin/bash
c=0
for row in $(cat /home/goofy/xxx.txt) ; do
date[c]="$(echo ${row} | cut -d ';' -f 2 )"
# echo ${date[c]}
year="$(echo ${date[c]} | cut -d '.' -f 3 )"
month="$(echo ${date[c]} | cut -d '.' -f 2 )"
day="$(echo ${date[c]} | cut -d '.' -f 1 )"
echo ${year}-${month}-${day}
$(sed "s/[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]/${year}-${month}-${day}/g" xxx.txt > xxx2.txt)
((c++))
done
Code:
1;2009-05-15;05:40;09:20
1;2009-05-15;15:40;13:30
3;2009-05-15;02:40;15:00
4;2009-05-15;15:30;11:30
1;2009-05-15;15:40;18:50
1;2009-05-15;05:23;09:35
3;2009-05-15;06:57;03:20
3;2009-05-15;06:45;10:05
2;2009-05-15;10:37;11:30
7;2009-05-15;00:40;19:25
1;2009-05-15;03:45;09:20
3;2009-05-15;19:43;10:4
3;2009-05-15;06:42;10:10
5;2009-05-15;10:30;11:30
3;2009-05-16;06:40;10:10
1;2009-05-16;23:46;10:15
3;2009-05-16;06:45;10:35
3;2009-05-16;16:43;10:25
2;2009-05-16;17:30;01:30
1;2009-05-16;09:40;14:05
1;2009-05-16;05:30;10:21
3;2009-05-16;06:40;17:05
7;2009-05-16;06:53;17:55
1;2009-05-16;13:41;19:05
4;2009-05-16;18:50;13:15
Wo ist mein Denkfehler? Ist bestimmt nur eine Kleinigkeit, komme aber gerade nicht drauf :-/