Slå ihop filer samt lägga till datum på varje rad

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum

Moderator: elf98

Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Elva
Gillar hemautomation
Inlägg: 37
Blev medlem: 03 jan 2015, 22:51
Ort: Hammenhög

Slå ihop filer samt lägga till datum på varje rad

Inlägg av Elva » 11 sep 2016, 13:25

Hej.

Jag är inne på att flytta över min gamla loggning till den nya databasen.
Men har stött på ett problem (för mig iaf)

Skulle behöva lite hjälp med att 'slå ihop' ett antal filer samt på varje rad lägga till datumet som står i originalfilnamnet.

Tanken jag har är att ta filerna kvartalsvis (ca 90filer, 550000 rader) för att inte det ska bli allt för stora filer att hantera.
Ev kortare period om det skulle behövas.

Själva importen till den nya databasen har jag klurat ut om jag har datan formaterad som i ex nedan.

Logglilerna heter tex. 2010-01-01-Ute.txt och ser ut såhär när man öppnar dom
00:00:10,1.11
00:00:25,1.11
00:00:39,1.11
00:00:54,1.11
00:01:08,1.11
00:01:22,1.11
00:01:37,1.11
00:01:51,1.11
00:02:06,1.11
00:02:20,1.11
00:02:35,1.11
00:02:49,1.11
00:03:04,1.11
00:03:19,1.11
00:03:33,1.11
00:03:47,1.11
Jag skulle vilja att formatet blir
2010-01-01,00:00:10,1.11
2010-01-01,00:00:25,1.11
2010-01-01,00:00:39,1.11
2010-01-01,00:00:54,1.11
2010-01-01,00:01:08,1.11
2010-01-01,00:01:22,1.11
2010-01-01,00:01:37,1.11
2010-01-01,00:01:51,1.11
2010-01-01,00:02:06,1.11
2010-01-01,00:02:20,1.11
2010-01-01,00:02:35,1.11
2010-01-01,00:02:49,1.11
2010-01-01,00:03:04,1.11
2010-01-01,00:03:19,1.11
2010-01-01,00:03:33,1.11
2010-01-01,00:03:47,1.11
Olika ex. på formatet när temperaturen varierar
11:22:51,24.50
10:22:25,0.91
00:49:32,-0.43
01:36:21,-10.39

Är detta möjligt att lösa med något roligt skript?


//Lenny

zyber
Tar hemautomation på allvar
Inlägg: 60
Blev medlem: 28 mar 2011, 21:27
Ort: Göteborg

Re: Slå ihop filer samt lägga till datum på varje rad

Inlägg av zyber » 11 sep 2016, 14:47

Testa!

Kod: Markera allt

files=`ls $1`                                                                   
for file in $files                                                              
do                                                                              
        #Get date                                                               
        date=`echo $file | cut -d - -f 1,2,3`                                   
        #read file, add $date to each line                                      
        cat $1/$file | sed -e "s/^/$date,/"                                     
done  
Gör filen körbar, chmod +x filnamn.sh
kör sedan ./filnamn.sh path/to/files > utdata.txt
och datat hamnar då i utdata.txt.
I katalogen där filerna kommer den lista alla filer, loopa över dem. Inte alls felsäkert, så i katalogen som pekas ut bör det bara finnas filer med datum i sitt filnamn :)

Elva
Gillar hemautomation
Inlägg: 37
Blev medlem: 03 jan 2015, 22:51
Ort: Hammenhög

Re: Slå ihop filer samt lägga till datum på varje rad

Inlägg av Elva » 14 sep 2016, 21:23

Guld.

Det enda var lite rättighetsbekymmer, men det är nog självförvållat.

Sen märkte jag att det inte är bra att spara outputfilen i samma mapp som inputfilerna. Den tenderar till att ganska stoooor :D

Stort tack


//Lenny

Skriv svar