Sida 6 av 7

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 19:41
av BadOmen
jag löste det genom att sätta dit mawk. nu tror jag det funkar :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 19:43
av BadOmen
BadOmen skrev:jag löste det genom att sätta dit mawk. nu tror jag det funkar :)
Jo nu funkar det, den visar bara de som är igång och inte de som är closed :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 19:48
av Konservburk
Vad menar du med att sätta dit mawk?

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 19:54
av BadOmen
Konservburk skrev:Vad menar du med att sätta dit mawk?
xmlstarlet sel -t -v / |
mawk '/./ {
if (++i%6 == 1) name=$0

jag tittade på den där raden du bad mig skriva ut för att få version av awk. den såg ut så här:
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

compiled limits:
max NF 32767
sprintf buffer 1020
jonas@Jonas-Desktop:~$

Det står att jag har mawk. Jag har kollat i synaptic och det är mawk som är installerat och det måste den ha gjort vid installationen av Ubuntu 8.04 för jag har inte gjort det själv, inte medvetet iaf :)


Den verkar sortera det baklänges dcba så om du kan tippa runt det så att den börjar skriva ut från andra hållet så blir det ABCD :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 19:58
av Konservburk
Nu blir jag verkligen förvirrad här ???

Om awk -W version säger att du använder mawk så ska awk vara precis samma sak som mawk, och det borde inte bli någon skillnad alls när du "sätter dit mawk".

Vilken version av skriptet ändrade du i? Var det den där det stod gawk förut? I så fall måste du ändra från \0 till \b och ta bort kommentaren framför xargs om sorteringen ska fungera.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:02
av BadOmen
Jepp jag bytte från gawk till mawk.

Så här står det i synaptic om mawk:
a pattern scanning and text processing language
Mawk is an interpreter for the AWK Programming Language. The AWK
language is useful for manipulation of data files, text retrieval and
processing, and for prototyping and experimenting with algorithms. Mawk
is a new awk meaning it implements the AWK language as defined in Aho,
Kernighan and Weinberger, The AWK Programming Language, Addison-Wesley
Publishing, 1988. (Hereafter referred to as the AWK book.) Mawk conforms
to the POSIX 1003.2 (draft 11.3) definition of the AWK language
which contains a few features not described in the AWK book, and mawk
provides a small number of extensions.

Mawk is smaller and much faster than gawk. It has some compile-time
limits such as NF = 32767 and sprintf buffer = 1020.
det verkar som man max kan skriva ut 1020 tecken om jag fattar det rätt?

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:05
av BadOmen
Konservburk skrev:I så fall måste du ändra från \0 till \b och ta bort kommentaren framför xargs om sorteringen ska fungera.
kanske du skulle kunna göra de ändringarna så att det inte blir nått annat fel :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:08
av BadOmen
Nu fattra jag inget här för när jag tog bort mawk och hade kvar bara awk som det var från början så funkade det????

Jag har ju inte gjort nåt, konstigt konstigt tycker jag.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:10
av Konservburk
Men det fungerar inte med gawk? Jag försöker bara förstå vad problemet egentligen är.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:13
av Konservburk
BadOmen skrev:
Konservburk skrev:I så fall måste du ändra från \0 till \b och ta bort kommentaren framför xargs om sorteringen ska fungera.
kanske du skulle kunna göra de ändringarna så att det inte blir nått annat fel :)
Enda problemet med att du inte ändrar själv är att jag inte vet exakt vilken kod som fungerade för dig och vilken som inte gjorde det. Det kan ju därför hända att jag ändrar på en version som ändå inte hade fungerat innan. Men vi gör ett försök iaf:

Kod: Markera allt

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
   d.get_name= \
   d.get_up_rate= \
   d.get_down_rate= \
   d.get_completed_chunks= \
   d.get_size_chunks= \
   d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
   if (++i%6 == 1) name=$0
   else if (i%6 == 2) up[name]=$0
   else if (i%6 == 3) down[name]=$0
   else if (i%6 == 4) done[name]=$0
   else if (i%6 == 5) size[name]=$0
   else if (i%6 == 0) active[name]=$0
} END {
   for(name in up) {
      if(active[name]) {
         up_sum += up[name]
         down_sum += down[name]
         #if(++j<=4)
         {
            printf("Namn: %s\n", name)
            printf("Klart: %d%%\n", 100 * done[name] / size[name])
            printf("Upp: %.1f kB/s\n", up[name] / 1024)
            printf("Ner: %.1f kB/s\n", down[name] / 1024)
            printf("\n\b")
         }
      }
   }
   printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
   printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:18
av BadOmen
Jag ska kolla det du gav mig just. Det är denna jag kör:

Kod: Markera allt

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
   d.get_name= \
   d.get_up_rate= \
   d.get_down_rate= \
   d.get_completed_chunks= \
   d.get_size_chunks= \
   d.is_active= \
|
xmlstarlet sel -t -v / |
mawk '/./ {
   if (++i%6 == 1) name=$0
   else if (i%6 == 2) up[name]=$0
   else if (i%6 == 3) down[name]=$0
   else if (i%6 == 4) done[name]=$0
   else if (i%6 == 5) size[name]=$0
   else if (i%6 == 0) active[name]=$0
} END {
   for(name in up) {
      if(active[name]) {
         up_sum += up[name]
         down_sum += down[name]
         #if(++j<=4)
         {
            printf("Namn: %s\n", name)
            printf("Klart: %d%%\n", 100 * done[name] / size[name])
            printf("Upp: %.1f kB/s\n", up[name] / 1024)
            printf("Ner: %.1f kB/s\n", down[name] / 1024)
            printf("\n\0")
         }
      }
   }
   printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
   printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
#xargs -d'\b' -n1 printf '%s\0' |
sort -z

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:20
av BadOmen
Konservburk skrev:
BadOmen skrev:
Konservburk skrev:I så fall måste du ändra från \0 till \b och ta bort kommentaren framför xargs om sorteringen ska fungera.
kanske du skulle kunna göra de ändringarna så att det inte blir nått annat fel :)
Enda problemet med att du inte ändrar själv är att jag inte vet exakt vilken kod som fungerade för dig och vilken som inte gjorde det. Det kan ju därför hända att jag ändrar på en version som ändå inte hade fungerat innan. Men vi gör ett försök iaf:

Kod: Markera allt

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
   d.get_name= \
   d.get_up_rate= \
   d.get_down_rate= \
   d.get_completed_chunks= \
   d.get_size_chunks= \
   d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
   if (++i%6 == 1) name=$0
   else if (i%6 == 2) up[name]=$0
   else if (i%6 == 3) down[name]=$0
   else if (i%6 == 4) done[name]=$0
   else if (i%6 == 5) size[name]=$0
   else if (i%6 == 0) active[name]=$0
} END {
   for(name in up) {
      if(active[name]) {
         up_sum += up[name]
         down_sum += down[name]
         #if(++j<=4)
         {
            printf("Namn: %s\n", name)
            printf("Klart: %d%%\n", 100 * done[name] / size[name])
            printf("Upp: %.1f kB/s\n", up[name] / 1024)
            printf("Ner: %.1f kB/s\n", down[name] / 1024)
            printf("\n\b")
         }
      }
   }
   printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
   printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z
Den funkade inte fasten jag satte dit mawk. Du får försöka med den jag gav dig just som jag sa att jag använde.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:30
av Konservburk
BadOmen skrev:Den funkade inte fasten jag satte dit mawk. Du får försöka med den jag gav dig just som jag sa att jag använde.
Nu börjar jag fundera på om det kan vara xargs-raden som inte fungerar för dig... Försök kommentera bort den en gång. Det borde du kunna klara själv.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:37
av Konservburk
Jag tror jag har en idé om vad som strular. Det skulle kunna vara så att conky ger upp efter första nolltecknet den hittar, vilket i så fall förklarar varför du bara får med en enda hela tiden. Försök köra skriptet från terminalen istället och se om det fungerar där. Om det fungerar ska vi helt enkelt se till att få bort alla nolltecknen när sorteringen väl är genomförd.

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:39
av BadOmen
nu jorde jag som du sa att jag skulle göra på koden som jag hade som fungerade med mawk:
I så fall måste du ändra från \0 till \b och ta bort kommentaren framför xargs om sorteringen ska fungera.
Det funkar fortfarande men jag får en fyrkant:
Namn Ubuntu
klar 100
upp 0
ner 0

sen börjar fyrkanter dyka upp:

en Fyrkant framför varje rad som börjar med Namn men klar, upp och ner ser ut som de ska.

sen Upp totalt: har en fyrkant framför sig och ner totalt har en på raden under sig.

Det ser ut som det är radbrytningen som skrivs ut som fyrkant :)
EDIT: skrev detta medans du hade skrivit ditt förra... Detta körde jag altså från Conky :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:45
av Konservburk
BadOmen skrev:en Fyrkant framför varje rad som börjar med Namn men klar, upp och ner ser ut som de ska.

sen Upp totalt: har en fyrkant framför sig och ner totalt har en på raden under sig.

Det ser ut som det är radbrytningen som skrivs ut som fyrkant :)
:D hihi, fyrkanterna kan inte vara något annat än backspace-tecken. Det stärker mina misstankar om att conky inte gillar nolltecken. Här är en variant som rensar bort alla nolltecknen det sista den gör:

Kod: Markera allt

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
   d.get_name= \
   d.get_up_rate= \
   d.get_down_rate= \
   d.get_completed_chunks= \
   d.get_size_chunks= \
   d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
   if (++i%6 == 1) name=$0
   else if (i%6 == 2) up[name]=$0
   else if (i%6 == 3) down[name]=$0
   else if (i%6 == 4) done[name]=$0
   else if (i%6 == 5) size[name]=$0
   else if (i%6 == 0) active[name]=$0
} END {
   for(name in up) {
      if(active[name]) {
         up_sum += up[name]
         down_sum += down[name]
         #if(++j<=4)
         {
            printf("Namn: %s\n", name)
            printf("Klart: %d%%\n", 100 * done[name] / size[name])
            printf("Upp: %.1f kB/s\n", up[name] / 1024)
            printf("Ner: %.1f kB/s\n", down[name] / 1024)
            printf("\n\b")
         }
      }
   }
   printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
   printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z |
xargs -0 -n1

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:48
av BadOmen
Denna kod körde jag i terminalen :

Kod: Markera allt

    #!/bin/sh
    test -S "$2" &&
    "$@" d.multicall default \
       d.get_name= \
       d.get_up_rate= \
       d.get_down_rate= \
       d.get_completed_chunks= \
       d.get_size_chunks= \
       d.is_active= \
    |
    xmlstarlet sel -t -v / |
    awk '/./ {
       if (++i%6 == 1) name=$0
       else if (i%6 == 2) up[name]=$0
       else if (i%6 == 3) down[name]=$0
       else if (i%6 == 4) done[name]=$0
       else if (i%6 == 5) size[name]=$0
       else if (i%6 == 0) active[name]=$0
    } END {
       for(name in up) {
          if(active[name]) {
             up_sum += up[name]
             down_sum += down[name]
             #if(++j<=4)
             {
                printf("Namn: %s\n", name)
                printf("Klart: %d%%\n", 100 * done[name] / size[name])
                printf("Upp: %.1f kB/s\n", up[name] / 1024)
                printf("Ner: %.1f kB/s\n", down[name] / 1024)
                printf("\n\b")
             }
          }
       }
       printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
       printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
    }' |
    xargs -d'\b' -n1 printf '%s\0' |
    sort -z
När jag körde scriptet ditt från terminalen så funkar det :) Du har nog rätt i att conky försör..
Namn: ubuntu-7.10-desktop-amd64.iso
Klart: 100%
Upp: 0.0 kB/s
Ner: 0.0 kB/s

Namn: ubuntu-8.04.1-desktop-i386.iso
Klart: 100%
Upp: 0.0 kB/s
Ner: 0.0 kB/s



Namn: ubuntu-8.04-desktop-amd64.iso
Klart: 100%
Upp: 0.0 kB/s
Ner: 0.0 kB/s

Upp totalt: 0.6 kB/s
Ner totalt: 41.4 kB/s
jonas@Jonas-Desktop:~$
jag kör en till torrent som laddar i 41 KB/s men den är inte med här nu, av val :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:52
av BadOmen
Konservburk skrev:
BadOmen skrev:en Fyrkant framför varje rad som börjar med Namn men klar, upp och ner ser ut som de ska.

sen Upp totalt: har en fyrkant framför sig och ner totalt har en på raden under sig.

Det ser ut som det är radbrytningen som skrivs ut som fyrkant :)
:D hihi, fyrkanterna kan inte vara något annat än backspace-tecken. Det stärker mina misstankar om att conky inte gillar nolltecken. Här är en variant som rensar bort alla nolltecknen det sista den gör:

Kod: Markera allt

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
   d.get_name= \
   d.get_up_rate= \
   d.get_down_rate= \
   d.get_completed_chunks= \
   d.get_size_chunks= \
   d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
   if (++i%6 == 1) name=$0
   else if (i%6 == 2) up[name]=$0
   else if (i%6 == 3) down[name]=$0
   else if (i%6 == 4) done[name]=$0
   else if (i%6 == 5) size[name]=$0
   else if (i%6 == 0) active[name]=$0
} END {
   for(name in up) {
      if(active[name]) {
         up_sum += up[name]
         down_sum += down[name]
         #if(++j<=4)
         {
            printf("Namn: %s\n", name)
            printf("Klart: %d%%\n", 100 * done[name] / size[name])
            printf("Upp: %.1f kB/s\n", up[name] / 1024)
            printf("Ner: %.1f kB/s\n", down[name] / 1024)
            printf("\n\b")
         }
      }
   }
   printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
   printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z |
xargs -0 -n1

Hehehe ok, backspace var det men jag var inte så långt ifrån :P

Den koden som du har här den med awk funkar nu bara fin så det var conky måste ha nån form av allergi mot nolltecken som du säger :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:53
av BadOmen
Jag får den dock i den ordning som du ser det blev när jag körde i terminalen nått inlägg upp. Så det är inte i bokstavsordning än :)

Re: rtorrent med conky, någon som vill göra en HowTo?[löst]

Postat: 08 aug 2008, 20:57
av Konservburk
BadOmen skrev:Jag får den dock i den ordning som du ser det blev när jag körde i terminalen nått inlägg upp. Så det är inte i bokstavsordning än :)
Jag tycker den ser ut att vara helt sorterad. Vad är fel i fel ordning?