The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Vanlig telle basert på et søkeord i Posten aemunathan Shell programmering og Skripting 4 03-03-2009 08:39
validere en fil basert på vilkår trichyselva Shell programmering og Skripting 8 01-02-2009 08:51
Basert på num av postene i file1 må sjekke postene i file2 å stille noen condns mavesum Shell programmering og Skripting 3 11-26-2008 10:48
trekke linjer basert på noen betingelser prvnrk Shell programmering og Skripting 4 10-17-2008 06:24
Tell No of Records i filen uten telling Topptekst og Trailer Records guiguy Shell programmering og Skripting 2 06-07-2007 01:15

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-05-2009
aemunathan aemunathan is offline
Registrert bruker
  
 

Bli Dato: mai 2008
Innlegg: 75
bruker awk å telle antall poster basert på vilkår

Hei

Jeg har filer med dato og klokkeslett stemplet som mappenavnene som 200906051400,200906051500,200906051600 ..... dermed hverdagen 24 filer blir generert

Jeg trenger å gjøre ting på denne 24 filer daglig

Filen inneholder data som

Code:
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


Jeg trenger skript for å gjøre følgende
1. Det har å filtrere poster basert på $ 4 og $ 6 (dvs. $ 4 \u003d\u003d BSNLSERVICE1 OG $ 6 \u003d\u003d 2128) og teller totalt records for dagen (20090605 *)


OUTPUT NØDVENDIG:
BSNLSERVICE1 2128 \u003d\u003d 3


2. Det har å filtrere poster basert på $ 4 og $ 6 (dvs. $ 4 \u003d\u003d BSNLSERVICE1 OG $ 6 \u003d\u003d 2128) og teller totalt records for dagen (20090605 *) og gruppe BASERT PÅ $ 14 (dvs. suksess, FEIL)


OUTPUT NØDVENDIG:
BSNLSERVICE1 2128 SUKSESS \u003d\u003d 1
BSNLSERVICE1 2128 Systemfeil \u003d\u003d 2


3. Det har å filtrere poster basert på $ 4 og $ 6 (dvs. $ 4 \u003d\u003d BSNLSERVICE1 OG $ 6 \u003d\u003d 2128), Gruppe BASERT PÅ $ 9 (dvs. 919448010098, 919446001618) og teller totalt records for dagen (20090605 *) for hver distinkt $ 9


OUTPUT NØDVENDIG:
919449838266 2
919448010097 1


utdataene skal være på $ 4 \u003d\u003d BSNLSERVICE1 og $ 6 \u003d\u003d 2128 bare .. andre ting ($ 4 \u003d\u003d RTMS) er ikke nødvendig.

Hjelp meg pls

Sist endret av aemunathan; 06-05-2009 på 09:33..
  #2 (permalink)  
Old 06-05-2009
panyam panyam is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 474
noe som dette kan du prøve:

Code:
awk '$4=="BSNLSERVICE1"&&$6=="2128" { count++ } END { print "BSNLSERVICE1-->2128-->" count }'  file_name.txt

gjenværende også nesten samme. bare litt modifisering i manuset nødvendig.
  #3 (permalink)  
Old 06-05-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4342
Prøv dette:


Code:
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

Hilsen
  #4 (permalink)  
Old 06-05-2009
aemunathan aemunathan is offline
Registrert bruker
  
 

Bli Dato: mai 2008
Innlegg: 75
Hi panyam og Franklin

Jeg fulgte metoden foreslått av panyam dens gir nyttig resultat.

Det går som i rekkefølgen i forespurt.


Code:
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*

En ting jeg trenger å vite om det er mulig å utlede filename fra dato kommandoen.

faktisk jeg trenger for å planlegge den hver kveld klokka 2:00, og jeg trenger å utlede filnavnet fra datoen kommandoen

kan ta eksempel
kveld 2:00 den ouput av

Code:
date +'%Y%m%d'

er 20090606
Jeg må gi filnavnet som 20090605 * i filnavnet del av awk ...


og Franklin .... Jeg brukte denne måten

Code:
#!/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

og fikk svar som
Sitat:
. / reconcil.sh
/ usr/xpg4/bin/awk: syntaksfeil sammenheng er:
>>>. / <<<
takk u
  #5 (permalink)  
Old 06-05-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4342
Å få datoen for igår kan du bruke datecalc script av Perderabo.
Plasser dette skriptet i samme katalog av skript med navnet datecalc og gjøre den kjørbar:

dager gått mellom 2 datoer

Skriptet bør ser slik ut:


Code:
#!/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*

Bits Tildelt / belastet Franklin52 for dette innlegget
Dato Bruker Kommentar Beløp
06-06-2009 aemunathan Utmerket arbeid gjøres 50.000
  #6 (permalink)  
Old 06-06-2009
aemunathan aemunathan is offline
Registrert bruker
  
 

Bli Dato: mai 2008
Innlegg: 75
Hei

Takk mann ... det hyggelig å se resultatet ...

Jeg trenger en mer info. faktisk er bruker sqlloader å sette inn resultatet i en tabell. Her jeg ønsker å skrive den forrige dato så vel i DD-MMM-ÅÅÅÅ format

Jeg prøvde på denne måten

Code:
#!/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*

Hjelp meg! Rapporten er av gårsdagen, så jeg må bruke den forrige datoen under utskrift.
Takk på forhånd

Sist endret av aemunathan; 06-07-2009 på 02:36.. Grunn: en mer kravet !!!!!!
Reply

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 03:10.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0