Portál AbcLinuxu, 10. května 2025 04:49

Dotaz: Bash dělení

8.10.2007 10:06 Dalkin
Bash dělení
Přečteno: 1235×
Odpovědět | Admin
Nevěděl by někdo jak by šlo vydělit, nejlepe milionem "výsledek" tohoto příkazu ?

ifconfig | grep "RX bytes:" | sed -n '1p' | awk '{print $2}' | tr -d 'bytes:'

info v bytech je sice dobře, ale chtelo by to i nejake ty M popripade G ...

Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.10.2007 10:27 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash dělení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vedel, precitat si manual k sedu a nemusis pustat 4 procesy namiesto jedneho
ifconfig |sed -n 's/.*RX bytes:\([[:digit:]]*\)[[:digit:]]\{6\}.*/\1/p; /^[[:digit:]]*$/q'
If you hold a Unix shell up to your ear, you can you hear the C.
8.10.2007 10:37 Dalkin
Rozbalit Rozbalit vše Re: Bash dělení
dekuji, ale krome toho ze to funguje to vubec nechapu :)) ale dikes
8.10.2007 11:49 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bash dělení
Staci si uvedomit, ze na delenie mocninami desiatky netreba skutocne matematicke delenie, ale stacia operacie s textom a na to je sed postacujuci. Na riadku s hned za retazcom "RX bytes" vybereiem niekolko cislic (neviem presne kolko, ale to neva) a potom musi byt dalsich 6 cislic. Ponecham si iba tych prvych "niekolko" a vypisem ich. A ak sa mi tato substitucia podarila (co spoznam tak, ze na riadku su od zaciatku az do konca iba cislice), tak skoncim.
If you hold a Unix shell up to your ear, you can you hear the C.
8.10.2007 21:22 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
Rozbalit Rozbalit vše Re: Bash dělení
A jeste jeden problem tenhle postup muze mit. Neziskas tim megabyty ani gigabyty, ale miliony bytu a miliardy bytu, coz je samozrejme rozdil. Zalezi ale na tobe, co vlastne chces ziskat :-)

Dejv
Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
8.10.2007 11:17 ajikdpoe | skóre: 23 | blog: dvh
Rozbalit Rozbalit vše Re: Bash dělení
Odpovědět | | Sbalit | Link | Blokovat | Admin
POMS=`echo 'scale=2;123456000/1000000' | bc`; echo $POMS
123.45
8.10.2007 11:25 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Bash dělení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud Vám stačí celočíselný výsledek, nejsnazší je rovnou požít aritmetické vyhodnocování bashe:
((dělenec / dělitel))
Případně pokud chcete aby Vám bash rovnou vrátil výsledek provedené operace na dané místo skriptu:
$((dělenec / dělitel))
Poznmáka kolegy Sema nebyla úplně od věci. Není třeba to tlačit přes čtyři roury, když vše z toho, co zde chce (vybrat, vzít první výskyt - viz níže, vyzobnout druhé pole, a odmazat znaky) zvládne sed nebo awk.

Plus poznámka na okraj: jak zaručíte, že první výskyt RX bytes: je ten, který chcete. Spíše než na počítání výskytu bych spíše čekala navázání na jméno rozhraní (které možná vezmu z parametru skriptu)... a zase jsme u toho: sed nebo awk jsou Vaši přátelé. ;)
http://prirucka.ujc.cas.cz/?ref=785&id=790.
8.10.2007 11:26 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Bash dělení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použij bc, nebo dc. Více viz Matematika v příkazové řádce
echo "10 / 5" | bc
2
echo "10 5 / pc" | dc
2
When your hammer is C++, everything begins to look like a thumb.

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.