Bash-skriptaus yhdistämään kaksi logi

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.
Ilmoita


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.
Ilmoita
Yhdistä, sorttaa ja poista duplikaatit.
Ilmoita

Tästä on poistettu viesti sääntöjen vastaisena.

Ilmoita
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
1 VASTAUS:
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ää kommentti
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.
Ilmoita
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
---
3 VASTAUSTA:
niin ja tosta unohtui välistä sort, eli:
|sort|uniq
sdfsdfdsf kirjoitti:
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?
+Lisää kommentti
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
Ilmoita

Vastaa alkuperäiseen viestiin

Bash-skriptaus yhdistämään kaksi logi

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.

5000 merkkiä jäljellä

Peruuta