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:
2) I am not getting any data in the csv file
3) The email syntax isn't working. I am not receiving the cvs file attachment via email
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.
Item 1# : 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
example - progflag.csv:
Item 2# : Real Time; row value. For example, the row value for Real Time is 4.0. Real Time : 4.0.
In my program Real Time is named Second. For example, SECOND stores 4.0. IF SECOND > 1.0 then output the column name
and its value to a cvs file
example - progflag.csv:
item3#: if the program find the directory path /SASFoundation (SASEXE) then output the directory path to a cvs file
Example progflag.cvs
Moderator's Comments:
You have been asked many times before to use CODE tags when displaying ALL sample input, ALL sample output, and ALL code segments.
Please follow the forum rules and use CODE and ICODE tags when displaying ALL sample input, output, and code segments. That does NOT mean that explanatory text should be include in CODE tags. Only sample input, sample output, and code segments!
Are you getting syntax errors for an incomplete awk program?
Are you getting failures from cd for trying to change directory to a list of four regular files (instead of to one directory)?
Are you always getting mail because progflag.csv is never empty since you always print a header line into that file even if no data follows the header?
This User Gave Thanks to Don Cragun For This Post:
On top of what Don Cragun said,
- the attached files' names don't match the ones mentioned in the text
- the attached files are no *nix text files as they are lacking the trailing <new line> char
- the attached files' structure (case, spaces around "=", maybe more) doesn't match the one mentioned in the text or inferred from the code sample.
Why don't you take a step back, rephrase the specification and explain the logics needed using input sample data and showing how they should show up in the output?
Are you getting syntax errors for an incomplete awk program?
I am get syntax errors for an incomplete awk program
I am getting an error in the If else statement
Are you always getting mail because progflag.csv is never empty since you always print a header line into that file even if no data follows the header?
Maybe you should consider the questions I asked and the comments RudiC made as suggestions for things to change in your code to make it work correctly and avoid the problems you are having. If you try fixing those problems in your code and are still having problems, come back to us and:
Tell us what operating system you're using.
Tell us what shell you're using.
Clearly describe the format of the input and output files you are processing? (Are they UNIX format text files? If not, why not and what format are they?)
Show us sample input files (in CODE tags).
Show us sample output files showing the exact output you are trying to produce from your sample input files (in CODE tags).
A CLEAR specification of what you are trying to do (using filenames in your specification that match the sample input and output files specified above.)
Show us your updated code (in CODE tags).
Show us all of the diagnostic messages that are being produced from your code (in CODE tags). (And, don't tell us that mailx is failing when your script died long before it got to mailx.)
This User Gave Thanks to Don Cragun For This Post:
Answer to your questions:
Tell us what operating system you're using? AiX
Tell us what shell you're using? bash shell
The format of text files is based on generated sas programs that produce sas log files. The sas programmers sometimes add the following parameters to their code Memsize, and a directory path /sas/sasfoundation. A programmer doesn't always add Memsize or a directory path /sas/sasfoundation in his code.
Therefore the output in his log file will not have Memsize or a directory path
/sas/sasfoundation.
In all the log files, there is an assignment variable named Real Time with a numeric value. Real Time value is normally low. The value range between 0.0 - 0.9. Real Time value is high if the value is 1.0
I have several problems with the program: I hope you can help me.
1) the If else statement is throwing an error message. syntax error can't
if ($1)
Memorize = ; , there a numeric value after the = in the log files, then output the value to progflag.csv.txt'
or if ($2>1.0)
Second which is alias for Real Time : , there is a numeric value after the : in the log files, greater than 1.0 then output the value to progflag.csv.txt'
or if ($ 3)
sasfoundation is the value that is stored in the alias sasexe.
if sasfoundation exist in the logfile then output value to progflag.csv.txt,
and ($0)
filename. Each log file has a title. if if ($1)|| ($2>1.0) || ($ 3) && ( $0))
then output the each log file record with the filename to progflag.csv.txt
elseif($2 < 1.0 else print ''}
This means if $2 is less than 1.0 then no value is outputted to the column
named Second in the progflag.csv.txt
For example in filew.log if the following items don't exist: Memsize, SASFoundation and also if Real Time row value is less than 1.0 then no data is outputted to progflag.cvs.txt
The below show sample of the exact output I'm trying to produce from the sample input files to progflag.cvs.txt. filew.log.txt data isn't in the progflag.cvs.txt because it doesn't have the following criteria Memsize, SASFoundation and Real Time value greater than 1.0 :
2) I am not getting any data in progflag.cvs.txt even though Memsize, and SASFoundation are in some of the log files that the program reads in
3) I am not receiving the progflag.cvs attachment via email
4) I added *.log | awk because I want the program to read in log files with the .log extension only. There are other files in the directory that have different extensions.
I have made a best effort attempt to correctly format your post. But, I am not able to understand a lot of what you are saying. I repeat:
Use CODE tags to display sample intput.
Use CODE tags to display sample output.
Use CODE tags to display code.
Do NOT use CODE tags to display questions, answers, or explanatory text.
Use QUOTE tags to display text that is copied from another post or an external source. Do not use QUOTE tags to display explanatory text.
Last edited by Don Cragun; 06-03-2016 at 07:00 PM..
Reason: Remove CODE tags surrounding explanatory text, add ICODE tags, add LIST tags, anremove QUOTE tags around seeming plain text.
We are lost here.
You have uploaded four sample files: file1.log.02896.txt, file2.log.02897.txt, filew.log.02820.txt, and filez.log.02899.txt
None of these files are referenced in any of your posts in this thread.
You have referenced files with names (or names that match pathname matching patterns) *.log, progflag.cvs, progflag.cvs.txt, and several others; but you have not shown us samples of the contents of any of these files.
You have shown us some code and you have sort of said what some of that code is trying to do, but the syntax is so different from the syntax expected by awk and bash and your explanations are not in complete sentences, so I am unable to figure out the format of your input files and I am unable to figure out the logic you are trying to use to produce the output you want.
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)
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... (2 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)