while read file_rec
do
dir_name=`echo "${file_rec}" | cut -d "|" -f 1`
purge_days=`echo "${file_rec}" | cut -d "|" -f 2`
You dont need to call external commands to split strings. Either use parameter expansion:
Code:
dir_name=${file_rec%|*}
purge_days=${file_rec#*|}
Or use multiple variables in your read command:
Code:
IFS='|' read dir_name purge_days
Quote:
Code:
if [ -d $dir_name ]
Quote your variable references:
Code:
if [ -d "$dir_name" ]
Quote:
Code:
then
echo "#### The purge days for the directory ${dir_name} is ${purge_days} ####" >> $log
# To list files with the format YY-MM-DD
find ${dir_name} -type f -name \"*[1-2][09][0-9][0-9]-[01][0-9]-[0-3][0-9]*\" -mtime +${purge_days} -exec ls -ltr {} \\; >> $log
Don't escape the quotes or the backslash:
Code:
find "$dir_name" -type f -name "*[1-2][09][0-9][0-9]-[01][0-9]-[0-3][0-9]*" \
-mtime +"$purge_days" -exec ls -ltr {} \; >> $log
The -t and -r options to ls will not do anything as you are giving ls a single filename
Quote:
Code:
else
echo "*** The directory $dir_name does not exists ***" >> $log
fi
dir_name=""
purge_days=""
done < dirs.conf
My problem is, the find command is not running and listing the old files in log file
when i use the following command
find / -name '*.*' -exec grep -il 'text' {} \;
I can redirect the errors to /dev/null. This happens only in ksh but not in csh. the 2>/dev/null is not working in csh. Can you some one suggest an alternative for this in csh ? (3 Replies)
Hi experts,
I have a shell script (korn shell on aix) where I am giving find command with file options which are read from a configuration file. For some reason I am getting an error find: 0652-017. I have put set -x in the shell script and the command looks okay. If I cut it and paste it in the... (6 Replies)
I have a script that has the following command:
find /home/user -name test.dat
The script works as desired when running normally. However, when I run the script preceding it with 'sh', it fails. Is there something I need to account for when preceding the execution of the script with 'sh'? (1 Reply)
I am running shell scripts on windows using Cygwin tool.
In my shell scripts, i want to add an error check, that verify whether a certain command is available or not.
For example if SED comamnd is not available in Cygwin, then it should exit with error message.
How do i write such shell... (2 Replies)
Hi,
I am trying to execute the below in Ksh (telnet)
find ./request.txt -mmin -30
It says
find: bad option -mmin
What i am trying to do is by using find command i am checking wheather the file request.txt is there for 30 minutes or not
Please help (1 Reply)
hi
I am a newbee in Shell scripting (hardly 7 days)
I have to execute a shell script which looks like this
#!/bin/sh
var1=`date +"%Y%m%d"`
echo $var1
find . -name "$var1*" -exec mv {} Delete/ \;
the find command in the script is running independently but when kept in this script it is... (24 Replies)
Hello all,
Something strange going on with a shell script I'm writing. It's trying to write a list of files that it finds in a given directory to another file. But I also have a skip list so matching files that are in that skip list should be, well uhm, skipped :)
Here's the code of my... (2 Replies)
Hi all,
Please i need an explanation for the following statements
ref_file=/tmp/cleanfiles export ref_file
touch `TZ=WAT+2 date "+%Y%m%d%H%M"` $ref_file
find . ! -name . -prune -type f ! -newer $ref_file -exec store_file.sh {} \; (1 Reply)
I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist.
diff=$1$2.diff
id=$2 new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff | awk... (2 Replies)
Hi All,
I am using below snippet to search for a string (read from a file 'searchstring.out') in all locations (/) and then iterate over the files found to write the locations and the respective owner to an output file.
However, this doesn't work as I believe the find command doesn't exit's... (11 Replies)