The Problem that I am having is when the code ran and populated the progflag.csv file, columns MEMSIZE, SECOND and SASEXE were blank. The next problems are the IF else statement isn't working and the email function isn't sending the progflag.csv attachment.
a. What I want the program to do is to only read in all files that have a
.log. extension. There other files in the same directory with different extension such as .html, and .ksh,
There are four steps that occur when the program output data to progflag.csv (data comes from multiple log files that are read in by the program):
1 for example if the following criteria in file12.log.20163005 doesn't exist, such as MEMSIZE , a directory path will the text /SASFoundation and the variable Real Time row value(Real Time 0.1) is less than 1.0, no data is outputted to progflag.csv .
2. if in file9.log.20163005, the following variables and values exist for example "MEMSIZE=200" and variable Real Time (Real Time 4.0) row value is More than 1.0, output the values and the column names to the proflag.csv.
3. if in file25.log.20163005, for example there is a directory path will text /SASFoundation and the variable Real Time (Real Time 0.2) row value is less than 1.0, output the values and its column name to the proflag.csv
An example in the progflag.csv results from the steps are as follows:
MEMSIZE SECOND SASEXE filename:
200 4.0 file1.log.20163005
SASFoundation file25.log.20163005
4. last, step only send an email if progflag.csv file rows are populated.
if MEMSIZE OR SECOND >1.0 OR SASEXE AND Filename then
' *.log.* > progflag.csv
[ -s progflag.csv ] && mailx -s "subject text -a "Programs flagged" receiver@domain.com < progflag.csv
ELSE ''
Should not run as I see syntax errors... I am surprised you got anything as output...
I cant guess the errors ro why its not working as the code isnt complet nor do we know what shell you are using...
Code:
if MEMSIZE OR SECOND >1.0 OR SASEXE AND Filename then
this is notthe correct way to write an if condition statement nor is
Read in multiple log files and Output selected keywords and its value to a cvs file
Code:
I have several problems with my program: I hope you can help me.
Code:
1) the If else statement isn't working I am getting a syntax error.
. The IF Else syntax is:
If MEMSIZE OR sasfoundation (SASEXE) OR Real Time(second) >1.0 and Filename, output column name and value to csv or else nothing
3) I am not getting the attachment in the email. I am not receiving the cvs file attachment via email
Code:
My program read in multiple files with .log, extension. For example file12.log.20120314. The program search for 3 selected items in each log files. 2 items Memsize and SASFoundation may not be in all log files. But Real Time : and its value are in every log files.
Code:
Item 1# input read in the program from log file: Memsize . Memsize statement stores numeric values. For example memsize=400. the program output the column name (memsize) and its value and the filename to a csv file
Code:
example output - progflag.csv:
memsize filename
400 file12.log.20120314
Code:
Item 2# the input read into the program from log files:
Real Time: row value.
Code:
For example, input read from log files,
The row value for Real Time is 4.0. Real Time : 4.0.
In my program Real Time is named Second.
[/CODE]
Code:
For example -input, SECOND stores 4.0. IF SECOND > 1.0 then output the column name and its value to a cvs file
Code:
example - progflag.csv:
Second filename
4.0 file11.log.20120314
If Real Time row value is less than 1.0 then output no data to the cvs file.
Example Real Time: 0.2 0.2 is less than 1.0
Code:
item3#: if the program find the directory path /SASFoundation (SASEXE) then output the directory path to a cvs file
Example progflag.cvs
Second SASEXE filename
4.0 SASFoundaion file11.log.2012031
[/CODE]
Code:
cd /tmp/*.log.*
awk -F '[=:;.]' '
function pr() {if(NR>1) printf "%s\t%s\t%s\t%s\n", K[1],K[2],K[3],K[0]}
BEGIN {
printf "MEMSIZE\tSECOND\tSASEXE\tFilename\n"
for(i=split("memsize ,Real Time ,SASFoundation",A,",");i;i--) L[A[i]]=i
}
FNR==1 {
pr()
K[0]=FILENAME
K[1]=K[2]=K[3]=x
}
$1 in L {v=$2;gsub("^[/ ]*","",v);gsub(/ *$/,"",v);K[L[$1]]=v}
END{pr(
{if ($1 || $2>1.0 || $ 3 && $0) printf $1 "\t" $2 "\t"" $3"\t" $0"\t; elseif($2>1.0 else print ''}'
' *.log.* > progflag.csv
[ -s progflag.csv ] && mailx -s "subject text -a "Programs flagged" receiver@domain.com < progflag.csv
Last edited by dellanicholson; 06-01-2016 at 06:46 PM..
Reason: ADD [CODE] [/CODE]
Hello everybody, I need your help.
I have a php site that was expoited, the hacker has injected into many php files a phishing code that was discovered and removed in order to have again a clean code. Now we need to remove from many php files that malware. I need to create a script that find and... (2 Replies)
I have a script that will search for a keyword in all the log files. It work just fine.
LOG_FILES={ "/Sandbox/logs/*" }
for file in ${LOG_FILES}; do
grep $1 $file
done
This only works for 1 keyword. What if I want to search for more then 1 keywords, say 4 or maybe even... (10 Replies)
I have several problems with my program: I hope you can help me.
1) the If else statement isn't working . The IF Else syntax is:
If MEMSIZE OR sasfoundation (SASEXE) OR Real Time(second) >1.0 and Filename, output column name and value to csv or else nothing
Example progflag,cvs:... (13 Replies)
I have ~100 text files in a directory that I am trying to parse and output to a new file. I am looking for the words chr,start,stop,ref,alt in each of the files. Those fields should appear somewhere in those files. The first two fields of each new set of rows is also printed. Since this is on a... (7 Replies)
Task: Find keywords in each line, and append at the end of line; if not found in the line, do nothing.
the code is wrong. how to make it work. thanks a lot.
cat keywords.txt | while read line; do
awk -F"|" '{if (/$line/) {print $0"$line , ";} else print;}' outfile.txt > tmp
... (9 Replies)
I have a huge list of files in an Unix directory (around 10000 files).
I need to be able to search for a certain keyword only within files that are modified between certain date and time, say for e.g 2012-08-20 12:30 to 2012-08-20 12:40
Can someone let me know what would be the fastest way... (10 Replies)
Hi to all
Sorry for the confusion because I did not explain the task clearly.
There are many .hhr files in a folder
There are so many lines in these .hhr files but I want only the following 2 lines to be transferred to the output file.
The keyword No 1 and all the words in the next line
They... (5 Replies)
Hey guys. I know pratically 0 about Linux, so could anyone please give me instructions on how to accomplish this ?
The distro is RedHat 4.1.2 and i need to find and replace a multiple lines string in several php files across subdirectories.
So lets say im at root/dir1/dir2/ , when i execute... (12 Replies)
Hi,
I have a file with about 50k keywords. I have a requirement to scan about 3k files to identify which filename has which keyword i.e. an output like following:
File1,Keyword1
File1,Keyword2
File3,Keyword1
.....
I have written a shell script which takes each of the 3k files, searches... (4 Replies)
Hello friends,
I have find a paticular string from the files present in my user
for example:
a username and password is hardcoded in multiple files which present in the my user.so I have to search about username in which files it is available.there are several dirctories are there,so... (5 Replies)