Visit Our UNIX and Linux User Community


How find lines, export sum into file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How find lines, export sum into file?
# 1  
Old 04-07-2020
How find lines, export sum into file?

hello
im working on a bash script to calculate number of viruses found and log on log file.
ive paste some part of log file that are important for this script:


Code:
----------- SCAN SUMMARY -----------
Scanned directories: 1063
Scanned files: 8559
Ignored items: 6
Suspicious matches: 137
Viruses found: 1
Fingerprint matches: 0
Data scanned: 199.10 MB
Scan time/item: 0.017 sec
Scan time: 163.698 sec

----------- SCAN SUMMARY -----------
Scanned directories: 4
Scanned files: 1
Ignored items: 0
Suspicious matches: 0
Viruses found: 0
Fingerprint matches: 0
Data scanned: 0.00 MB
Scan time/item: 0.001 sec
Scan time: 0.004 sec

# Skipped - too many resources: 11525 ( > filemax=10000)

----------- SCAN SUMMARY -----------
Scanned directories: 407
Scanned files: 828
Ignored items: 0
Suspicious matches: 1
Viruses found: 14
Fingerprint matches: 0
Data scanned: 36.75 MB
Scan time/item: 0.017 sec
Scan time: 20.494 sec


it has to search the file and find the number in front of the Viruses found phrase, and export sum of these numbers into temp file.
in this case, script pass number 15 into file.log


ive use regix to found but script exit after first result, it cant search all the files content


Viruses found\: (\d+)
# 2  
Old 04-07-2020
Hello

Try:
Code:
LOG=/path/to/logfile
TOTAL=0

grep Virus "$LOG" | while read _ _ NUM
	do
		TOTAL=$(( $TOTAL + $NUM ))
	done

echo $TOTAL Viruses found

If that doesnt help, how about show your attempts?
This User Gave Thanks to sea For This Post:
# 3  
Old 04-08-2020
i appreciate your help.
output still 0,
ive trace the code:

[root@srv ~]# bash -x script.sh
+ LOG=/var/log/scan.log
+ TOTAL=0
+ grep Virus /var/log/scan.log
+ read _ _ NUM
+ TOTAL=4
+ read _ _ NUM
+ TOTAL=9
+ read _ _ NUM
+ TOTAL=9
+ read _ _ NUM
+ echo 0
0
# 4  
Old 04-08-2020
That's because with common shells (e.g. bash) variables defined / created in a subshell (the while loop) are not handed back to the parent shell.


Try also
Code:
echo $(( $(grep "Virus" file | grep -o "[^ ]*$" | tr '\n' '+') 0 ))
15

# 5  
Old 04-08-2020
Quote:
Originally Posted by RudiC
That's because with common shells (e.g. bash) variables defined / created in a subshell (the while loop) are not handed back to the parent shell.


Try also
Code:
echo $(( $(grep "Virus" file | grep -o "[^ ]*$" | tr '\n' '+') 0 ))
15

logically echo $TOTAL must print correct number,
# 6  
Old 04-08-2020
Quote:
Originally Posted by nimafire
logically echo $TOTAL must print correct number,

It does. In each of the individual and (sort of) independent shell / subshell levels. Look at it as having TWO variables called TOTAL, one in the parent shell, the second in the subshell, initialized from the parent's variable. No way back up.

Previous Thread | Next Thread
Test Your Knowledge in Computers #433
Difficulty: Easy
JSON, or JavaScript Object Notation, is a general-purpose data interchange format that is defined as a subset of JavaScript's object literal syntax.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find all lines in file such that each word on that line appears in at least n lines of the file

I have a file where every line includes four expressions with a caret in the middle (plus some other "words" or fields, always separated by spaces). I would like to extract from this file, all those lines such that each of the four expressions containing a caret appears in at least four different... (9 Replies)
Discussion started by: uncleMonty
9 Replies

2. Shell Programming and Scripting

Sum product of even/odd lines

Hi, I have a text file like this 6.0000E-02 0.00000E+00 0.0000 0.00000E+00 0.0000 7.0000E-02 5.00000E-10 1.0000 5.00000E-10 1.0000 8.0000E-02 3.00000E-09 0.4082 3.00000E-09 0.4082 9.0000E-02 3.50000E-09 0.3780 3.50000E-09 0.3780 1.0000E-01 1.00000E-09... (2 Replies)
Discussion started by: f_o_555
2 Replies

3. Shell Programming and Scripting

How to find sum of any 'n' number of values from file matching target value?

I have a simple text file having payment amount value on each line. At the end of day 'n' number of payments created difference in amount that I need to match from this file. I have information about how many payments created difference and difference amount. Please help me to build shell... (3 Replies)
Discussion started by: swats007
3 Replies

4. UNIX for Dummies Questions & Answers

How to export some lines from a file to a new file?

Dear everyone, I have a big file with many information in it, but I just want some lines. I don't know exactly what the number of the line I want, I only know some part of these line. It all starts with the word 'F(tot :1 )' I use grep command and find it. It looks like that on the screen:... (3 Replies)
Discussion started by: phamnu
3 Replies

5. Shell Programming and Scripting

Summing over specific lines and replacing the lines with the sum

Hi friends, This is sed & awk type question. It is slightly different from my previous question. I have a text file which has numbers spread all over the file. I want to sum the series of numbers (but no more than 10 numbers in series) whenever i find it and produce an output file with the... (4 Replies)
Discussion started by: kaaliakahn
4 Replies

6. Shell Programming and Scripting

Summing over specific lines and replacing the lines with the sum using sed, awk

Hi friends, This is sed & awk type question. I have a text file which has numbers spread all over the file. I want to sum the series of numbers whenever i find it and produce an output file with the sum. For example ###start of input text file #### abc def ghi 1 2 3 4 kjld random... (3 Replies)
Discussion started by: kaaliakahn
3 Replies

7. Shell Programming and Scripting

find string(s) in text file and nearby data, export to list help

Hi, So I'm kinda new to shell scripts and the like. I've picked up quite a bit of use from browsing the forums here but ran into a new one that I can't seem to find an answer for. I'm looking to parse/find a string AND the next 15 or so charachters that follow the string within a text file... (1 Reply)
Discussion started by: kar23me
1 Replies

8. Shell Programming and Scripting

Sum of all lines in file without roundup with awk

Hi, I have a file and I want to sum all the numbers in it. Example of the file: 0.6714359 -3842.59553830551 I used your forum (https://www.unix.com/shell-programming-scripting/74293-how-get-sum-all-lines-file.html) and found a script, what worked for me: awk '{a+=$0}END{print a}'... (8 Replies)
Discussion started by: mario8eren
8 Replies

9. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

10. Shell Programming and Scripting

how to get the sum of all the lines in the file

Hi I have the following file, how I will calculate the sum of all the entries in the file. > cat abc 2 3 4 now the sum should be 2+3+4 = 9 (4 Replies)
Discussion started by: sdosanjh
4 Replies

Featured Tech Videos