Portál AbcLinuxu, 12. května 2025 10:06

Dotaz: Jak vypsat jen urcity sled znaku v radku ?

1.12.2005 17:06 David
Jak vypsat jen urcity sled znaku v radku ?
Přečteno: 162×
Odpovědět | Admin
Dobry den,pomoci prikazu grep jsem schopen vyselektovat ze souboru tento radek:
16:49:55 (59.42 KB/s) - `subor' ulozen [1000296]
Potreboval bych ale jen to cislo udavajici rychlost co je v zavorce.Prosim o radu jak toho dosahnout.Dekuji
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.12.2005 17:13 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
...|grep -Po '\d+\.\d+\ KB/s'
1.12.2005 17:14 thefox | skóre: 25 | Ťapešovo
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin

sed -e 's/.*(\([^ ]*\).*/\1/'
Bez záruky...

0118 999 881 999 119 725 3
1.12.2005 17:19 alex
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed 's/^.*\[\([[:digit:]]*\)\]$/\1/'
1.12.2005 17:21 alex
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Aha, sorry. Dival jsem se na spatnou zavorku...
1.12.2005 17:25 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
cut -d[ -f2|cut -d] -f1 (zrejme menej efektivne ale funguje ;-) )
Project Satan infects Calculon with Werecar virus
1.12.2005 17:35 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Úplně nejlepší by bylo to udělat všechno naráz a nepoužít grep.
sed -n 's,^[0-9:]* (\([0-9.]*\) KB/s) - .* ulozen \[[0-9]*\].*$,\1,;T;p'
Případně
sed -n '/původní grep regexp/{s,^.*(\([0-9.]*\) KB/s).*$,\1,;p}'
Ale to první by mělo být o chlup rychlejší. Případně může být vhodné ten regexp dotesat, což bez přesnějšího zadání nemůžu udělat, že :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
1.12.2005 17:44 alex
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Vsadim se, ze jde o ziskani rychlosti prenosu z protokolu wget :-)
1.12.2005 19:40 David
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Dekuji.Funguje.Ale zas problem.Jak to dostat do promene ?Kdyz to delam primo v prikazove radce tak je vse ok.Jakmile tomu dam formu
#/bin/bash
ahoj=`grep uložen rychlost | sed -e 's/.*(\([^ ]*\).*/\1/'`
echo "$ahoj"
ulozim to do spustitelneho souboru tak to vyhodi jen prazdny radek bez cilsa.
1.12.2005 19:56 ...... | skóre: 41 | blog: ...
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
nebo ahoj=$(prikaz)
1.12.2005 20:16 David
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Ten samy vysledek.Kdyz presne to co mam v tom souboru zadam postupne v prikazove radce tak to vyhodi cislo.Kdyz pustim pres ten soubor tak to vyhodi jen prazdny radek.Soubor vypada takto:
#/bin/bash
ahoj=$(grep uložen rychlost | sed -e 's/.*(\([^ ]*\).*/\1/')
echo "$ahoj"
David Watzke avatar 1.12.2005 20:19 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
A cos čekal. Kde je ten wGet? Co chceš grepovat? :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
1.12.2005 21:17 david
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
No myslel jsem ze kdyz to jde v prikazove radce tak to musi jit taky udelat pres nejaky script.Ja v linuxu nejsem zatim moc dobry a tak nemohu prijit na to proc to jde kdyz zapisuju ty jednotlive radky tak jak jsou v tom scriptu primo na konzole.A pak kdyz se to ma vypsat pres ten script tak nic.
1.12.2005 21:22 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
a spusta sa to v rovnakom adresari?
skus na zaciatku skriptu zavolat pwd
Project Satan infects Calculon with Werecar virus
1.12.2005 22:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Na začátku má být '#!/bin/bash', ale to by nesjpíš nemělo vadit.
2.12.2005 08:35 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Jestli to dobře chápu, tak rychlost je soubor obsahující ten log. Takže jedna dobrá rada na začátek. Spouštějte aplikace, jejichž log chcete zpracovávat s
export LC_ALL=C
export LANG=C
případně i s přepínačem posix jestli ho ta aplikace má. Vyhnete se tak spoustě problémů. Jako druhá radu bych doporučil si přečíst v mém příspěvku tu část o zbytečném grepu. sed je mocný nástroj a je zbytečné spouštět dva procesy. V tomhle případě o nic nejde, ale aspoň se něco naučíte.
export LC_ALL=C
export LANG=C
wget http://www.abclinuxu.cz/ 2>rychlost
ahoj=$(sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p' rychlost)
echo $ahoj
Mě to kupodivu funguje bez problémů. Jde to i bez toho mezikroku uložení do souboru.
ahoj=$(
  export LC_ALL=C
  export LANG=C
  wget http://www.abclinuxu.cz/ 2>&1 |
    sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p'
)
echo $ahoj
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
2.12.2005 15:30 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak vypsat jen urcity sled znaku v radku ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Následující program v Pythonu stáhne danou URL, uloží do souboru "soubor" a vypíše, jak dlouho trvalo stahování, kolik bajtů se stáhlo a jaká byla rychlost připojení. Zvládá protokoly http i ftp. Třeba to může být někomu užitečné.
#!/usr/bin/env python
import time, urlgrabber, os

filename = 'soubor'

start = time.time()
urlgrabber.urlgrab('http://abclinuxu.cz', filename)
seconds = time.time() - start
size = os.path.getsize(filename)
print size, 'bytes downloaded in', seconds, ' seconds.'
print 'Your connection speed was', size/seconds, 'bytes per second.'

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.