Eli tarkoitus on yhdistää päivä-kohtainen logi kuukausi-kohtaiseen, tavalla että vain ne rivit jotka eivät vielä ole lisätty kuukausi-logiin lisättäisiin.
Logit normaaleja teksti tiedostoja.
Minulla on semmoinen kutka ettei tähän kummoistakaan komento-putkea tarvita, mutta ei se nyt näytä ihan kädenkäänteessäkään onnistuvan.
Logit normaaleja teksti tiedostoja.
Minulla on semmoinen kutka ettei tähän kummoistakaan komento-putkea tarvita, mutta ei se nyt näytä ihan kädenkäänteessäkään onnistuvan.
Vastaukset 10
Vanhimmat
Lisätään vielä täsmennystä.
Kuukausi logissa ei voi olla kahta samanlaista riviä, jokainen rivi on siis unikki. Päivittäin kertyvässä logissa taas voi kaikki rivit olla semmoisia jotka jo ovat kuukausi logissa, ja silloin niitä ei enään saisi lisätä.
Pika-apu olis nyt hienoo.
Yhdistä, sorttaa ja poista duplikaatit.
Tässä PHP -koodina, jossa Plogi = Liitettävä logi, ja Klogi = Koostelogi.
http://pastebin.com/MbCCD037
Näyttää yläpito poistavan näitä vastauksia, tuossa ylempänä tästä ensimäinen versio jonka poistivat. Mikähän niillä mättää, joku torvelo hommissa vissiin. Kuvakaappaus varmuudeksi tästä ylös.
Linux Mint 18.1 Serena
Xfce 64-bit
No ylläpito ymmärtää ohjelmoinnista suunnilleen yhtä paljon, kuin lehmä levytmaidosta. Ja sitten poistellaan kaikki sellainen, joka on oman ymmärryskyvyn ulkopuolella. Modella on jonkinnäköinen krooninen hiekkapimppisyys:)
Lisätäänkö ne aina kerran päivässä esimerkiksi seuraavana päivänä? Silloinhan voisi tehdä esim:
cat päivälokit* >> kaikkilokit
Deletoi vaan sitten joka kerran ensin pois sen kaikki sisältävät tiedoston, tai vaihtaa nimeä. Tai
cat eilinenloki >> kaikkilokit
jolloin lisätään vaan yksi tiedosto isomman perään.
lisää vaan kaikki rivit ja sitten uniq-komennolla poistat duplikaatit.
cat testi.txt |uniq >testi2.txt
testi.txt:
---
abc
abc
§12
§12
§12
123
456
abc
---
niin ja tosta unohtui välistä sort, eli:
|sort|uniq
Tämä aika lähellä.
testi2.txt sisältöä ei saisi aakkostaa, eli rivien järjestys tulisi säilyä, lisäys järjestyksessä.
Vain testi.txt tidoston rivit joita ei vielä ole testi2.txt tiedostossa, lisätään, järjestystä muuttamatta.
Tuo PHP näytäs tekevän sen just oikein, pitää vielä hioa tuon "fadsfdsfsdf" komentorivi putkee, niin ei tarvittas PHP tulkkkia kuvioihin.
Mä en keksinyt miten ilman sorttaamista onnistuis.
Mutta perlillä onnistuu ja se kai on asennettuna?
http://unix.stackexchange.com/questions/11939/how-to-get-only-the-unique-results-without-having-to-sort-data
Ja tossa ketjussa mainittiin, että uniq:n sijaan unique:lla vois onnistua?
Jokos tämä kelpaisi.
- Ensimmäinen rivi yhdistää logit temp.txt sisällöksi.
- Toinen rivi poistaa samat, ja tallentaa Klogi.txt tiedostoon
- Kolmas rivi, poistaa suorituksessa käytetyn temp.txt tiedoston.
cat Plogi.txt Klogi.txt > temp.txt
awk '!seen[$0] ' temp.txt > Klogi.txt
rm temp.txt
Huomaa että lisäys tulee Klogin alkuun, jos haluat lisäyksen Klogin loppuun vaihda ensimmäinen rivi näin:
cat Klogi.txt Plogi.txt > temp.txt
Linux Mint 18.1 Serena
Xfce 64-bit