![]() |
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.
|
|
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 |
| Rekord száma alapján a kulcsszó a nyilvántartásban | aemunathan | Shell programozás és Scripting | 4 | 03-03-2009 08:39 AM |
| validálására a kép alapján feltételek | trichyselva | Shell programozás és Scripting | 8 | 01-02-2009 08:51 AM |
| Based on num a nyilvántartást fájl1 ellenőriznie kell, hogy nyilvántartást fájl2 hogy néhány condns | mavesum | Shell programozás és Scripting | 3 | 11-26-2008 10:48 AM |
| kivonat tételek alapján néhány feltételek | prvnrk | Shell programozás és Scripting | 4 | 10-17-2008 05:24 AM |
| Gróf száma Records File nélkül számítva Header és Trailer Records | guiguy | Shell programozás és Scripting | 2 | 06-07-2007 12:15 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
segítségével awk a gróf nem a feljegyzések alapján feltételek
Szia
Én miután fájlokat a dátumot és az időt bélyegzőnek a mappa nevét, mint 200906051400,200906051500,200906051600 ..... így mindennapi 24 fájl jön létre Meg kell tenni bizonyos dolgok ezen a napi 24 kép fájl tartalmazza az adatokat, mint Kód:
200906050016370 0 1244141195225298lessrv3 BSNLSERVICE1 BSNLSERVICE1 2128 LOCATIONMANAGER SLIR 919443200299 MSISDN ASC 919443200299 0 SUCCESS 1244141195225298less 919443200299 124414 79.301938811.6885305NORMAL DELAY_ WGS84 200906050016440 0 1244141197503299lessrv3 BSNLSERVICE1 BSNLSERVICE1 2139 LOCATIONMANAGER SLIR 919449838266 MSISDN ASC 919449838266 0 SUCCESS 1244141197503299less 919449838266 124414 74.739722013.3302837NORMAL DELAY_ WGS84 200906050017070 0 1244141224604306lessrv3 BSNLSERVICE1 BSNLSERVICE1 2128 LOCATIONMANAGER SLIR 919448010097 MSISDN ASC 919448010097 1 SYSTEM FAILURE 1244141224604306less 919448010097 124414 NORMAL DELAY_ WGS84 200906050017110 0 1244141227460308lessrv3 BSNLSERVICE1 BSNLSERVICE1 2128 LOCATIONMANAGER SLIR 919449838266 MSISDN ASC 919448010098 1 SYSTEM FAILURE 1244141227460308less 919449838266 124414 NORMAL DELAY_ WGS84 20090605140148 1204702370366140lessrv3 RTMS 0 TRACKING tlrep 0 SUCCESS 1 WGS84 200906051402100 0 1195202147789210lessrv3 RTMS RTMS LOCATIONMANAGER SLIR 919446001620 MSISDN ASC 919446001620 526 INACTIVE SUBSCRIBER 1195202147789210less 124419 NORMAL DELAY_ WGS84 200906051402100 0 1195202147789210lessrv3 RTMS RTMS LOCATIONMANAGER SLIR 919446001618 MSISDN ASC 919446001618 526 INACTIVE SUBSCRIBER 1195202147789210less 124419 NORMAL DELAY_ WGS84 200906051402100 0 1195202147789210lessrv3 RTMS RTMS LOCATIONMANAGER SLIR 919446001617 MSISDN ASC 919446001617 526 INACTIVE SUBSCRIBER 1195202147789210less 124419 NORMAL DELAY_ WGS84 Szükségem van a parancsfájlok hogy a következő 1. Azt, hogy kiszűrje a nyilvántartások alapján és $ 4 $ 6 (azaz $ 4 \u003d\u003d BSNLSERVICE1 és $ 6 \u003d\u003d 2128) és a szám a teljes nyilvántartást a napot (20090605 *) KIMENETI szükség: BSNLSERVICE1 2128 \u003d\u003d 3 2. Azt, hogy kiszűrje a nyilvántartások alapján és $ 4 $ 6 (azaz $ 4 \u003d\u003d BSNLSERVICE1 és $ 6 \u003d\u003d 2128) és a szám a teljes nyilvántartást a napot (20090605 *) és a csoportos ALAPULÓ $ 14 (vagyis a siker, hiba) KIMENETI szükség: BSNLSERVICE1 2128 SIKER \u003d\u003d 1 BSNLSERVICE1 2128 SYSTEM FAILURE \u003d\u003d 2 3. Azt, hogy kiszűrje a nyilvántartások alapján és $ 4 $ 6 (azaz $ 4 \u003d\u003d BSNLSERVICE1 és $ 6 \u003d\u003d 2128), CSOPORT ALAPULÓ $ 9 (azaz 919448010098, 919446001618), és számolni a teljes nyilvántartást a NAP (20090605 *) minden egyes, $ 9 KIMENETI szükség: 919449838266 2 919448010097 1 kimenet kell a $ 4 \u003d\u003d BSNLSERVICE1 és $ 6 \u003d\u003d 2128 .. csak más dolgok ($ 4 \u003d\u003d RTMS) nem szükséges. Segíts pls Last edited by aemunathan; 06/05/2009 at 08:33 AM.. |
|
||||
|
Valami ilyesmi kipróbálhatja:
Kód:
awk '$4=="BSNLSERVICE1"&&$6=="2128" { count++ } END { print "BSNLSERVICE1-->2128-->" count }' file_name.txt
|
|
||||
|
Próbáld ki ezt:
Kód:
awk -v day="20090605" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
s1++;a[$14]++;b[$9]++
}
END{
print serv,val, "=" s1 "\n"
print serv,val, a["SUCCESS"]
print serv,val, a["SYSTEM"] "\n"
for(i in b){print i, b[i]}
}' file
|
|
||||
|
Szia panyam és Franklin
Követtem a módszer által javasolt panyam annak következtében, hogy hasznos. Itt megy, mint az, hogy én kérni. Kód:
1.
awk '$4=="BSNLSERVICE1"&&$6=="2128" { count++ } END { print "BSNLSERVICE1-->2128-->" count }' 20090604*
2.
awk '$4=="BSNLSERVICE1"&&$6=="2128"{ b[$14]++} END {for(i in b){print i, b[i]} }' 20090604*
3.
awk '$4=="BSNLSERVICE1"&&$6=="2128"{ b[$9]++} END {for(i in b){print i, b[i]} }' 20090604*
Azt, hogy valóban szükség van menetrendet minden este 2:00-kor, és szükségem van, hogy ebből a fájlnév időpontjától parancs segítségével megteszi a példa Ma este 2:00 az ouput a Kód:
date +'%Y%m%d' Meg kell adnia a fájl nevét a 20090605 * a fájlnév része az awk ... és Franklin .... Régen így Kód:
#!/usr/xpg4/bin/awk
awk -v day="20090605" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
s1++;a[$14]++;b[$9]++
}
END{
print serv,val, "=" s1 "\n"
print serv,val, a["SUCCESS"]
print serv,val, a["SYSTEM"] "\n"
for(i in b){print i, b[i]}
}' 200906051859
Idézet:
|
|
||||
|
Ahhoz, hogy a dátum a tegnapi használatod datecalc script a Perderabo.
Tegyük ezt a forgatókönyvet az azonos könyvtárba szkriptnek a neve datecalc és ez végrehajtható: nap között eltelt 2 dátumok Szkriptjeid kell néz ki: Kód:
#!/bin/ksh
dat=$(./datecalc -a $(date +"%Y %m %d") - 1)
day=$(/usr/xpg4/bin/awk -v d="$dat" 'BEGIN {split(d,a," ");day=sprintf("%s%02s%02s",a[1],a[2],a[3]);print day}')
/usr/xpg4/bin/awk -v d="$day" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
s1++;a[$14]++;b[$9]++
}
END{
print "Filename: " FILENAME "\n"
print serv,val, "=" s1 "\n"
print serv,val, a["SUCCESS"]
print serv,val, a["SYSTEM"] "\n"
for(i in b){print i, b[i]}
}' $day*
|
| Odaítélt bit / terhelniük Franklin52 ezt Post | |||
| Dátum | Felhasználó | Hozzászólás | Összeg |
| 06-06-2009 | aemunathan | Kiváló munkát végzett | 50.000 |
|
||||
|
Szia
Köszönet egy csomó ember ... annak örülök, hogy az eredmény ... Kell még egy info. ténylegesen használok sqlloader szúrni az eredményt a táblázatban. Itt szeretnénk nyomtatni a korábbi időpontban is dd-mon-yyyy format Próbáltam ilyen módon Kód:
#!/bin/ksh
dat=$(./datecalc -a $(date +"%Y %m %d") - 1)
da_te=$(date +'%d')
da=$(($da_te-1))
mon=$(date +'%b')
year=$(date +'%Y')
host=$(hostname)
day=$(/usr/xpg4/bin/awk -v d="$dat" 'BEGIN {split(d,a," ");day=sprintf("%s%02s%02s",a[1],a[2],a[3]);print day}')
/usr/xpg4/bin/awk -v d="$day" -v serv="BSNLSERVICE1" -v val="2128" -v daet="$(($da)-($mon)-($year))" -v ho="$host"'
$1~day && $4==serv && $6==val {
s1++
}
END{
print daet, host,s1
}' $day*
Köszi előre Last edited by aemunathan; 06/07/2009 at 01:36 PM.. Ok: még egy követelmény !!!!!! |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|