Portál AbcLinuxu, 14. května 2025 03:55

Dotaz: Jak vyzobnout udaj z retezce

19.11.2014 13:53 tomtom
Jak vyzobnout udaj z retezce
Přečteno: 238×
Odpovědět | Admin
Dobry den,

mam tento retezec ulozeny v promenne. Bile znaky jsou tvoreny pouze mezerami (0x20):

eth0 Link encap:Ethernet HWaddr 00:02:c9:35:5b:e0 inet addr:213.195.192.102 Bcast:213.195.192.127 Mask:255.255.255.224 inet6 addr: fe80::202:c9ff:fe35:5be0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:865865846317 errors:0 dropped:14309479 overruns:0 frame:0 TX packets:877099946537 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1093143890272326 (994.2 TiB) TX bytes:249954475982823 (227.3 TiB)

Jaky je nejjednodussi zpusob, jak si z tohoto retezce vyzobnout do nove promenne napr. cislo uvedene za "RX packets" ?

Problem je, ze "RX packets" muze mit ruznou polohu.

Dekuji

Řešení dotazu:


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

Odpovědi

19.11.2014 14:08 ondrab | skóre: 12 | Milevsko
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
O jaký programovací jazyk se jedná?
Keep on keepin' on.
19.11.2014 14:09 2012 | skóre: 16 | blog: co_me_dneska_napadlo
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
ifconfig eth0 | grep 'RX packets:' | awk '{print $2}' | sed 's/packets://g'
kozzi avatar 19.11.2014 14:10 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin

tak bud pouzit awk, pripadne i sed by se dal pouzit, pokud ti jde o skript v shellu, pokud to mas v nejakem jazyce tak pouzij regularni vyrazy

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
19.11.2014 14:20 tomtom
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jedna se o Bash, rad bych to vyresil bud tim co sam Bash umi, nebo s pouzitim beznych linuxovych nastroju, jako je prave ten sed/awk/cut/...

Problem je, ze z tech udaju o sitovce bych rad vycetl vsechny ty ciselne udaje. Navic se jedna o vzdalenou masinu, takze z ni taham tenhle udaj pres SSH. A ta odezva je dost mizerna, navic tech sitovek je tam osm. Proto nechci opakovane volat /sbin/ifconfig pro kazdy radek toho vypisu, ale volam ho jednou pro kazdou kartu, vystup si ukladam do promenne a z te to potom doluju.

Jenze kdyz vystup /sbin/ifconfig ulozim do promenne, ztratim vsechny "nove radky" a je z toho jeden takovy dlouhy retezec. Tak se tady peru s tim awkem, ale jsem z neho dost tumpachovej
19.11.2014 14:23 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo třeba
cat /sys/class/net/*/statistics/rx_packets
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
19.11.2014 14:25 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
ifconfig eth0 | awk '/RX packets/ {sub(/packets:/, ""); print $2}'
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
19.11.2014 14:34 tomtom
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Diky, super. Krome toho se mi prave podarilo uplacat jeste toto:

echo $ETH0 | sed 's/.*RX packets:\([0-9]\{1,20\}\).*/\1/'
19.11.2014 14:45 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
a v čem je to lepší než pouhé
cat /sys/class/net/eth0/statistics/rx_packets
?
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
19.11.2014 15:10 tomtom
Rozbalit Rozbalit vše Re: Jak vyzobnout udaj z retezce
Lepsi to neni, cat rozhodne vede. Kdyz se mi ale ten sileny regexp podarilo dat dohromady, byl jsem celej zhavej se tim pochlubit

Udelam to jinak. Na tom serveru uplacam skript, ktery mi cat-ne veskere pozadovane udaje v /sys do nejake zpracovatelne podoby a tenhle skript pak budu volat SSHckem.

Diky

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.