Sponsored Content
Top Forums Shell Programming and Scripting UNIX Shell Scripting (Solaris) for File Checking Post 302975271 by Don Cragun on Friday 10th of June 2016 01:26:52 AM
Old 06-10-2016
Hi Dave,
OK. So now we know that you are not stupid (and please do not say that you are again) and, if you try to make some changes on your own, you get most of it right. As I said before, if you make an honest effort to do the work on your own, we are happy to help you with problems if you get stuck. Just don't expect us to do everything for you when you should be able to do most of it on your own.

The only real problem you have left is that you changed the printf command format argument to a fixed string (the date and timestamp) instead of adding another %s argument to the format string and adding the date and timestamp data in the appropriate spot in the argument list.

What happens if you change:
Code:
		then	printf "$now" '|ALERT2|ATS|chk_dirs.pl@mhappmmap001:Invalid file "%s" in "%s"\n' "$file" "$dir"

to:
Code:
		then	printf '%s|ALERT2|ATS|chk_dirs.pl@mhappmmap001:Invalid file "%s" in "%s"\n' "$now" "$file" "$dir"

or, to avoid lines in your script getting wider than 80 characters:
Code:
		then	printf '%s|%s file "%s" in "%s"\n' "$now" \
			    'ALERT2|ATS|chk_dirs.pl@mhappmmap001:Invalid' \
			    "$file" "$dir"

(Note that this assumes that you want one line of output per invalid file instead of the three lines of output shown in post #46.)

And, since you no longer need to keep track of whether or not an invalid file is found in a directory (since you no longer want to print a message if all files in a directory are valid), there is no need to reset the bad_found variable in each directory-processing loop nor to update it when an invalid file is found. So, you might want to see if the slightly simpler:
Code:
#!/bin/ksh
config='/home/abainzd/dave.conf'
log='/ats/1.0.0/pst/release/logs/events.log'
now="$(date +'%d/%m/%Y_%X')"

while read dir pattern
do	cd "$dir" && for file in *
	do	if [ -f "$file" ] && ! /usr/xpg4/bin/grep -Fq "$pattern" "$file"
		then	printf '%s|%s file "%s" in "%s"\n' "$now" \
			    'ALERT2|ATS|chk_dirs.pl@mhappmmap001:Invalid' \
			    "$file" "$dir"
		 fi
	done
done < "$config" >> "$log"

works for you.

Note, however, that the date and time format string you said was your standard output format in post #44 showed a date in the format MM/DD/YYYY and the output your are producing above is in the format DD/MM/YYYY. I assume you can change the date command format string in your script if you want to switch the order of the month and day numbers in your output.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

2. AIX

Unix shell scripting to find latest file having timestamp embedded...

Hi guys, I have a directory in UNIX having files with the below format, i need to pickup the latest file having recent timestamp embedded on it, then need to rename it to a standard file name. Below is the file format: filename_yyyymmdd.csv, i need to pick the latest and move it with the... (2 Replies)
Discussion started by: kaushik25
2 Replies

3. Solaris

How to check the file existence using shell scripting in Solaris-10

Hi, I have a script which will check the fiel existence, the lines are as below if !(test -d ./data) then mkdir data fi In the first line error occurs as below generatelicense.sh: syntax error at line 2: `!' unexpected Where as this script works fine in linux OS. How to solve... (2 Replies)
Discussion started by: krevathi1912
2 Replies

4. UNIX for Dummies Questions & Answers

Unix Shell Scripting -- update employees not present in input file

ALL, My shell script takes a employee file as input. I have to identify the list of employees not in the input file and update their status in the database. Approach I followed: by traversing through the input file add all the emplid's to a variable. update the status of employees not in... (2 Replies)
Discussion started by: sailussr
2 Replies

5. Shell Programming and Scripting

C Shell Scripting - HELP! - checking total args in a script

Hi, I 'm trying to learn the scripting language and am trying to create a script to open a C Program, allow the user to edit it, and then run it. What I have works but only when you enter the name to be compiled and the c program, but what if you only entered the 1 argument (cprogram.c) ? but I 'm... (3 Replies)
Discussion started by: patel_ankz
3 Replies

6. Shell Programming and Scripting

generate tabular output from an input text file in unix shell scripting

Hi, I have the output (as below) which i want it to be in a table. For e.g. space utilization in PSE on path /logs is 0% space utilization in PSE on path /logs/tuxedo/tuxlsp is 16% space utilization in PSE on path /ldvarlsp/lsp/log is 37% space utilization in PSE on path /home is 6%... (7 Replies)
Discussion started by: pkbond
7 Replies

7. Shell Programming and Scripting

Request for file read option in Unix shell scripting

Hi Friends, I would like to read all the record from one txt file to other file txt For example I have two txt file a.txt and b.txt. I need to read a.txt record by record and I need add the system date @ end of each record before moving it to b.txt. Could you please share the coding for... (4 Replies)
Discussion started by: vinoth124
4 Replies

8. Shell Programming and Scripting

How to add trailer record at the end of the flat file in the unix ksh shell scripting?

Hi, How to add trailer record at the end of the flat file in the unix ksh shell scripting can you please let me know the procedure Regards Srikanth (3 Replies)
Discussion started by: srikanth_sagi
3 Replies

9. Shell Programming and Scripting

Read csv file, convert the data and make one text file in UNIX shell scripting

I have input data looks like this which is a part of a csv file 7,1265,76548,"0102:04" 8,1266,76545,"0112:04" I need to make the output data should look like this and the output data will be part of text file: 7|1265000 |7654899 |A| 8|12660000 |76545999 |B| The logic behind the... (6 Replies)
Discussion started by: RJG
6 Replies

10. Solaris

Solaris Shell Scripting

Hi, Want to know, is there any way to restrict a Solaris user to Single Login. Means a particular user can login once and if he or someone else tries to login with his ID then a message displayed "user already logged in" and denies his attempt. Regard, Jeet (1 Reply)
Discussion started by: CountJeet
1 Replies
All times are GMT -4. The time now is 09:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy