Help with Logic - Copying the same files by 2 Linux scripts to same directory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with Logic - Copying the same files by 2 Linux scripts to same directory
# 8  
Old 08-21-2012
Hi Methyl,

Thanks for your reply.

Here is the code component which copies the 2 files from one directory to another based on 2 date ranges,

The file *_ABC_CUST_GS_NON_TRAN_CHANGE_INDEX_DLY* is copied to the same directory by 2 different scripts.

Also, can you pls let me know in-case of any coding/syntax/standards errors.

Quote:
if [[ $dynbusdate -gt $prevbusdate ]]; then
echo " Step 1.1 ---> DynamicFile exists & P_BUS_DATE in DynamicDateFile is greater than the P_BUS_DATE of the previous run "
echo "P_BUS_DATE=$dynbusdate">$COMMON_SCRIPTS/CallCPMGPERDynamicParam.env
ls -l $CDPH_DELTA_ARCHIVE/*_ABC_CUST_GS_NON_TRAN_CHANGE_INDEX_DLY*| grep $dynbusdate | awk '{print $9}' > $COMMON_TMP/abc_nt_per_chg_indx.txt
ls -l $CDPH_DELTA_ARCHIVE/*_ABC_CUST_GS_NON_TRAN_PER_PROF_DLY*| grep $dynbusdate | awk '{print $9}' > $COMMON_TMP/abc_nt_per_gs.txt
while [ $dynbusdate -gt $dynsubdate ]
do
dynbusdate=`date -d "$dynbusdate 1 day ago" "+%Y%m%d"`
ls -l $CDPH_DELTA_ARCHIVE/*_ABC_CUST_GS_NON_TRAN_CHANGE_INDEX_DLY*| grep $dynbusdate | awk '{print $9}' >> $COMMON_TMP/abc_nt_per_chg_indx.txt
ls -l $CDPH_DELTA_ARCHIVE/*_ABC_CUST_GS_NON_TRAN_PER_PROF_DLY*| grep $dynbusdate | awk '{print $9}' >> $COMMON_TMP/abc_nt_per_gs.txt
done
#################################################################################################### #####################################
#Check whether the dates in the goldstandard.txt & change_index.txt matches, if it doesnt match, the flow will not proceed, else continue
#################################################################################################### #####################################
sed 's|.*/\([0-9]\{8\}\).*|\1|' $COMMON_TMP/abc_nt_per_chg_indx.txt |paste -sd',' - > $COMMON_TMP/abc_nt_per_chg_indx.done
sed 's|.*/\([0-9]\{8\}\).*|\1|' $COMMON_TMP/abc_nt_per_gs.txt |paste -sd',' - > $COMMON_TMP/abc_nt_per_gs.done
tr , \\n < $COMMON_TMP/abc_nt_per_gs.done| sort > $COMMON_TMP/abc_nt_per_gs.done_tmp
tr , \\n < $COMMON_TMP/abc_nt_per_chg_indx.done | sort > $COMMON_TMP/abc_nt_per_chg_indx.done_tmp
cmp -s $COMMON_TMP/abc_nt_per_gs.done_tmp $COMMON_TMP/abc_nt_per_chg_indx.done_tmp

file_cmp_chk=$?
if [[ file_cmp_chk -eq 0 ]]; then
for name in `cat $COMMON_TMP/abc_nt_per_chg_indx.txt`
do
cp $name $COMMON_INBOX
echo $name;
done
for name in `cat $COMMON_TMP/abc_nt_per_gs.txt`
do
cp $name $COMMON_INBOX
echo $name;
done
rm -f $COMMON_TMP/abc_nt_per_gs.done_tmp $COMMON_TMP/abc_nt_per_chg_indx.done_tmp
Thanks Much
Freddie
# 9  
Old 08-21-2012
Please let us know what Shell you are running.

How do you match the value of $dynbusdate ? Is it part of the filename, or have you changed the default way that ls displays dates?
If it is to do with the filenames, please post sample filenames.
Earlier posts mention working with a range of dates. The script as posted only looks for yesterday's date (which simplifies the process).

On the subject of standards:
It is accepted practice to indent conditional code for readability.
It is normal to put double quotes round string variables (whether or not the command happens to work sometimes) because you can get undesirable effects if the variable contains space characters or contains a string sequence recognised by the command.
It is totally unacceptable to use for ... do with an open-ended list. I still don't know where the construct came from and have yet to find it in any Shell Manual, Shell book or Shell course notes. Kernighan himself recommends the while ... do construct.
There is never a reason to end a line with a semi-colon character (except with certain find ... -exec \; syntax where the escaped semi-colon is special to find and nothing to do with Shell syntax).

Last edited by methyl; 08-21-2012 at 07:20 PM.. Reason: addenda regarding Standards
# 10  
Old 08-21-2012
Thanks Methyl for your reply.Smilie

The script is Korn Shell.

The $dynbusdate value is derived from a file that contains the date value, i.e. P_BUS_DATE=20120821 for e.g

I have one more date value named P_SUB_DATE (which is assigned to $dynsubdate) & the files that falls between these 2 ranges are copied from one directory to another.

The filenames are as follows,

20120821_ABC_CUST_GS_NON_TRAN_CHANGE_INDEX_DLY.dat.z

This file is copied to the same directory by 2 different scripts. (This is where i should put a logic to check whether the file(for a particular date) is already copied by the other shell script.

20120821_ABC_CUST_GS_NON_TRAN_PER_PROF_DLY.dat.z

Hope this helps,

Thanks,
Freddie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Copying files from parent directory only

Hello, Please can someone assist on a issue I am having. I want to find specific files in the parent directory only that have been modified over the last 2 days and copy them to another location. NOTE: The version of AIX I am using does not have MAXDEPTH. I have currently written the... (3 Replies)
Discussion started by: Dolph
3 Replies

2. Shell Programming and Scripting

Copying xml files to a chosen directory

I want to determine if there's any xml files exist & if so copy each xml to that directory. Is my code correct for doing that? I can't test my script yet. Somebody please explain it to me please? if ]; then #print "No Status type XML files received from server in $DIRECTORY" else for... (2 Replies)
Discussion started by: emc^24sho
2 Replies

3. Shell Programming and Scripting

Copying files to a directory

Hi, I am newbie to unix scripting, need a help in the doubt i have. It is " when files are copied to a directory using cp command, they are arranged by default according to the file name, is there anyway where the files that are copied be arranged with respect to their size, with using the sort... (5 Replies)
Discussion started by: pundalik
5 Replies

4. UNIX for Dummies Questions & Answers

Help in copying multiple files from th directory

Hey Guys, I have directory with thousands of files, I need to copy only march data. can any one please Help.......... Thanks, Uttam N (4 Replies)
Discussion started by: Uttamnsd
4 Replies

5. Shell Programming and Scripting

Find a directory and copying files to it

Hi all, wondering if someone would be able to help with a little query I have. I currently have a script which copies everything in a specific directory to a number of other directories depending on a variable. The problem I have is the destination directories vary (in and incoming directories)... (3 Replies)
Discussion started by: JayC89
3 Replies

6. Shell Programming and Scripting

Copying files to a directory

Hi I have a few questions. I am trying to copy a file to a directory. I need to copy files that do not end in numbers, for example, into a directory. This is what I tried so far. cp filename directorytowhereIwannacopy but it says it can't copy to a directory. I need to copy many files into one... (2 Replies)
Discussion started by: #moveon
2 Replies

7. Shell Programming and Scripting

Copying files from one directory into another.

Could someone please tell me if there is a command similar to head or tail that can be used on directories. I want to select a given number of files from a directory and copy them into another directory. But I found out I can't use head as it doesn't (or I don't know how yet!) work on directories.... (4 Replies)
Discussion started by: Krush187
4 Replies

8. UNIX for Dummies Questions & Answers

Help with cron: copying all files in a directory to another...

Here's what I have thus far: cp -r /home/mydom/public_html/products/Widget/ /home/mydom/public_html/ This works fine but suppose the folder in public_html has a different name (Main_Widget). The cron above needs to copy the files within the folder (Widget) instead of the folder itself. How... (1 Reply)
Discussion started by: ashleyquick
1 Replies

9. UNIX for Dummies Questions & Answers

Copying multiple files with "If Then Else" logic

I need some suggestions on how to write the code to copy multiple files rather than duplicating the code multiple times. Example: I have four files that need to go throught this logic in the same way. Do I have to duplicate this chunk of code four times or can I built the logic in the same set... (2 Replies)
Discussion started by: madhunk
2 Replies

10. UNIX for Dummies Questions & Answers

Copying files from one directory to Other

Hi UNIX Gurus, Could please help me out regarding following situation. I am copying some files from one directory to other directotry using following command. cp /var/tmp/*date*.gz /var/tmp/user/ Problem: Once the copy has completed, I need to check whether all the files (including... (3 Replies)
Discussion started by: satishkeshetty
3 Replies
Login or Register to Ask a Question