Calculate the total


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Calculate the total
# 15  
Old 03-06-2014
Quote:
Originally Posted by Chubler_XL
replace $1==S{T++;C[f]++} with $1~S{T++;C[f]++}
Hi XL ,

If the string have special characters , how to handle it ? thanks

#vi file.txt

Code:
aaa\\. this is description file 1 
bbb=? this is description file 2

Code:
#vi aaaa201401.log
aaa\\. dfasf ffd
aaa\\. dfags gf
bbb=? xdfas gfs 
bbb=? dfasf gfsd
bbb=? dfasgf

# 16  
Old 03-06-2014
How about this replacement loop:

Code:
while read -r STR NAME; do
   printf "%s" "$NAME"
   awk -v S="$STR" '
       BEGIN{gsub("\\\\","\\\\",S)}
       FNR==1{f++}
       index($1,S){T++;C[f]++}
       END{
          for(i=1;i<=f;i++) printf "\t%d",C[i]
          printf "\t%d\n", T}' *.log
done < file.txt

# 17  
Old 03-06-2014
thanks XL ,

It seems very well , but the code still can not handle the space character , if the line have space ( like the below example ) , it can not check the occurence of string "aaa" and "bbb" , if I remove the space , then it works fine , would to plesae advise how to change it ? thanks

Code:
#vi aaaa201401.log

ZZZ YYY XXXaaa\\. dfasf ffd
ZZZ YYY XXXaaa\\. dfags gf
ZZZ YYY XXXbbb=? xdfas gfs 
ZZZ YYY XXXbbb=? dfasf gfsd
ZZZ YYY XXXbbb=? dfasgf

# 18  
Old 03-06-2014
Space would be OK if we can get a distinction between the code and description.

Currently the program cannot determine what is code and what is description:

Code:
Code=ZZZ
Desc=YYY XXXaaa\\. this is description file 1

Code=ZZZ YYY
Desc=XXXaaa\\. this is description file 1

Code=ZZZ YYY XXXaaa\\. 
Desc=this is description file 1

Could we change the file.txt to have a Tab character between the two fields eg:

Code:
ZZZ YYY XXXaaa\\.<tab>this is description file 1

Where <tab> above represents a single ascii character #9 or ctrl-I:

Code:
while IFS=$'\t' read -r STR NAME; do
   printf "%s" "$NAME"
   awk -v S="$STR" '
       BEGIN{gsub("\\\\","\\\\",S)}
       FNR==1{f++}
       index($0,S){T++;C[f]++}
       END{
          for(i=1;i<=f;i++) printf "\t%d",C[i]
          printf "\t%d\n", T}' *.log
done < file.txt

# 19  
Old 03-07-2014
Quote:
Originally Posted by Chubler_XL
Space would be OK if we can get a distinction between the code and description.

Currently the program cannot determine what is code and what is description:

Code:
Code=ZZZ
Desc=YYY XXXaaa\\. this is description file 1

Code=ZZZ YYY
Desc=XXXaaa\\. this is description file 1

Code=ZZZ YYY XXXaaa\\. 
Desc=this is description file 1

Could we change the file.txt to have a Tab character between the two fields eg:

Code:
ZZZ YYY XXXaaa\\.<tab>this is description file 1

Where <tab> above represents a single ascii character #9 or ctrl-I:

Code:
while IFS=$'\t' read -r STR NAME; do
   printf "%s" "$NAME"
   awk -v S="$STR" '
       BEGIN{gsub("\\\\","\\\\",S)}
       FNR==1{f++}
       index($0,S){T++;C[f]++}
       END{
          for(i=1;i<=f;i++) printf "\t%d",C[i]
          printf "\t%d\n", T}' *.log
done < file.txt

it should be ok , thanks a lot
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculate total memory using free -m

Hi I am trying to calculate memory used by Linux System free -m total used free shared buffers cached Mem: 32109 31010 1099 0 3600 7287 -/+ buffers/cache: 20121 11987 Swap: 10239 1282 8957 Now according to my requirement Im calculating memory using below cmd free -m | awk 'NR==3{printf... (2 Replies)
Discussion started by: sam@sam
2 Replies

2. Shell Programming and Scripting

Calculate the total 4 field based on the conditions

Please help me to write a script Match with ACNO & NAME if it matched calculate the total val1 val2 val3 and val4 and GT is total of ACNO wise.please check the output Table ----------------- 1005|ANDP|ACN|20|50|10|30 1005|ANDP|ACN|20|10|30|40 1001|AND|NAC|40|50|40|50... (22 Replies)
Discussion started by: kalia4u
22 Replies

3. Shell Programming and Scripting

Calculate total value from a row

HI I have a file # cat marks.txt MARKS LIST 2013 Name english french chinese latin total_marks wer 34 45 67 23 wqa 12 39 10 56 wsy 23 90 23 78 Now i need to find the total marks of each student using... (11 Replies)
Discussion started by: Priya Amaresh
11 Replies

4. Shell Programming and Scripting

Calculate total of log by hour

Hi, Just wondering, is there anyway I can get the total of logs generated by hours ? Let say I have these logs, Sep 23 04:48:43 hsbcufs: NOTICE: realloccg /: file system full Sep 23 04:48:47 hsbcufs: NOTICE: alloc: /: file system full Sep 23 04:48:51 hsbcufs: NOTICE: realloccg /: file... (14 Replies)
Discussion started by: dehetoxic
14 Replies

5. Shell Programming and Scripting

Calculate total space, total used space and total free space in filesystem names matching keyword

Good afternoon! Im new at scripting and Im trying to write a script to calculate total space, total used space and total free space in filesystem names matching a keyword (in this one we will use keyword virginia). Please dont be mean or harsh, like I said Im new and trying my best. Scripting... (4 Replies)
Discussion started by: bigben1220
4 Replies

6. Shell Programming and Scripting

Calculate total sum from a file

The file content is dynamic and using this format: name1 number1 name2 number2 name3 number3 name4 number4 .................... Need a smooth way to calculate the sum of all the numbers in that file (number1 + number2 + number3 + number4........ = total ) (11 Replies)
Discussion started by: TehOne
11 Replies

7. Shell Programming and Scripting

awk script to calculate total

Hi First field is the Record Type. A Record Type 5 can have multiple Record Type 6's before another Record Type 5 appears. I want to calculate the total of fields at position 8-11 on Record type 6 when Record Type 5 has a field at position 11-14 equals to '2222'. then it should delete the lines... (2 Replies)
Discussion started by: appsguy616
2 Replies

8. Shell Programming and Scripting

Awk help needed to calculate total

Hi all, I have a flat file like 10 steven 25 mike 47 Charles 127 Nancy 34 steven 23 mike 67 Charles 7761 Nancy 8 steven 54 mike 88 Charles 1267 Nancy I need to calculate the total of steven and all the members , for this I am using like grep "`sed -n 1p patterns.txt`"... (7 Replies)
Discussion started by: senthilkumar_ak
7 Replies
Login or Register to Ask a Question