![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| Perl elemzés a KSH-elemzés | Popeye | Shell programozás és Scripting | 1 | 08-06-2008 11:46 PM |
| olvasat sorokat pár kép a KSH | ytokar | Shell programozás és Scripting | 4 | 02-08-2008 02:50 PM |
| perl Keresés és csere pár | umen | Shell programozás és Scripting | 1 | 07-30-2006 12:37 PM |
| proc | bache_gowda | A UNIX a dummies Kérdések és válaszok | 7 | 05-23-2005 12:18 PM |
| /proc | aojmoj | A UNIX a fejlett és szakértői Felhasználók | 3 | 11-20-2002 05:54 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Hi all, Én Kell egy kis segítség használatával sed/awk / linux egyéb eszközök megfelelnek a következő cél: Próbálom, hogy a kimenet a / proc / net / dev: Kód:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:18748525 129811 0 0 0 0 0 0 18748525 129811 0 0 0 0 0 0
eth0:1699369069 226296437 0 0 0 0 0 3555 4118745424 194001149 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
... grep végre interface (eth0) és kapcsolja be a következő adatokat tartalmazza: Kód:
rxbytes:1699369069 rxpackets:226296437 rxerrs:0 rxdrop:0 rxfifo:0 rxframe:0 rxcompressed:0 rxmulticast:3555 \ txbytes:4118745424 txpackets:194001149 txerrs:0 txdrop:0 txfifo:0 txcolls:0 txcarrier:0 txcompressed:0 Kaptam, mint amennyire ez a részlet: Kód:
cat /proc/net/dev | egrep "(eth0|face)" | sed -e 's/|/:/' | sed -e 's/|/ /' | cut -d ":" -f 2 | tr -s " " " " bytes packets errs drop fifo frame compressed multicast bytes packets errs drop fifo colls carrier compressed 1709184740 226328683 0 0 0 0 0 3555 4122564415 194035769 0 0 0 0 0 0 ... de nem vagyok benne biztos, hogy hol jár el innen, vagy ha ez nem is jó úton halad. Már valaki csinált valamit a hasonló előtt (azaz a fordítás oszlopot kulcs: érték párok)? Ön szakértelem much appreciated! Update: Találtam hogyan kell átültetni sorok oszlopokat (ami egy lépéssel közelebb!): Kód:
cat /proc/net/dev | egrep "(eth0|face)" | sed -e 's/|/:/' | sed -e 's/|/ /' | cut -d ":" -f 2 | tr -s " " " " | \
awk 'BEGIN {FS=" "} {for (i=1;i<=NF;i++){ arr[NR,i]=$i; if(big <= NF) big=NF; }} \
END {for(i=1;i<=big;i++){for(j=1;j<=NR;j++){printf("%s:",arr[j,i]);}printf("\n");}}'
bytes:1718395341:
packets:226353349:
errs:0:
drop:0:
fifo:0:
frame:0:
compressed:0:
multicast:3555:
bytes:4126856358:
packets:194063589:
errs:0:
drop:0:
fifo:0:
colls:0:
carrier:0:
compressed:0:
Most már csak szükség, hogy kitaláljuk, hogyan prepend a "TX" és a "rx", és a záró szalag ":" és ez minden! Ez a fórum is awesome. Update 2: Megvan! Az egyetlen mód, hogy lehetne jobb is a CamelCase (RxBytes, stb): Kód:
cat /proc/net/dev | egrep "(eth0|face)" | sed -e 's/|/:/' -e 's/|/ /' | cut -d ":" -f 2 | tr -s " " " " | \
awk 'BEGIN {FS=" "} {for (i=1;i<=NF;i++){ if(i<9){arr[NR,i]="rx"$i;}else{arr[NR,i]="tx"$i;} if(big <= NF) big=NF; }} \
END {for(i=1;i<=big;i++){for(j=1;j<=NR;j++){ printf("%s\t",arr[j,i]);}printf("\n");}}' | sed -e 's/\t$//' -e 's/\t/:/' -e 's/:[tr]x/:/'
rxbytes:1790844622
rxpackets:226585666
rxerrs:0
rxdrop:0
rxfifo:0
rxframe:0
rxcompressed:0
rxmulticast:3555
txbytes:4161116750
txpackets:194310608
txerrs:0
txdrop:0
txfifo:0
txcolls:0
txcarrier:0
txcompressed:0
A többsoros formátum valóban jól működik a kérelmemet. Last edited by otheus; 01/30/2009 at 07:31 AM.. Reason: Woot! |
![]() |
| Könyvjelzõk |
| Címkék |
| megoldatlan, megoldatlan hónapokig, megoldatlan a héten |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|