Portál AbcLinuxu, 12. května 2025 10:06
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
...|grep -Po '\d+\.\d+\ KB/s'
sed -e 's/.*(\([^ ]*\).*/\1/'
Bez záruky...
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
#/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.
ahoj=$(prikaz)
#/bin/bash
ahoj=$(grep uložen rychlost | sed -e 's/.*(\([^ ]*\).*/\1/')
echo "$ahoj"
#!/bin/bash
', ale to by nesjpíš nemělo vadit.
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=Cpří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 $ahojMě 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
#!/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.'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.