Need small help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need small help
# 1  
Old 03-23-2010
Need small help

Hi,

i have a client requirement to post the files into generic folder named as "source".file identification is to retrieve Publication code (Instance name) from the file name.So thereafter we move the files to different instances of specific folders for the same unix server.(means if the file name as q1 we are going to move the file into q1 folder,if the filename as gf we are going to move the file into gf folder,if the filename as ac then we are going to move the file into cdsglobalac folder and soon..........)

Below are the instance names
Code:
1) q1
2) gf
3) ac
4) hi
5) bg and so on.........

I have developed a shell script about this and it is running successfully for the requirement. But client gave some modifications,If the file name comes as "Q1","GF","AC","HI","BG" then we need to move those files into error folder.How can achieve this to modify the existing shell script.

Code:
src_dir=/home/global/source
tgt_dir=/home/global
file_dir=/home/global/import-file-move-to-instances
now=`date +%Y%m%d`

if [[ -e $file_dir/file_move_import_serv.log ]];
then
rm -f $file_dir/file_move_import_serv.log
fi

cat $file_dir/ClientName_file.txt | awk '{ print $1 }' | while read q_dirs

do
echo $q_dirs

if [[ $q_dirs == 'q1' || $q_dirs == 'gf' ]];
then
cp $src_dir/import-serv/$q_dirs*.txt  $tgt_dir/$q_dirs/import-serv/
else
cdsgq_dir=`echo $q_dirs | sed 's/global//' | awk '{print}'|tr '[A-Z]' '[a-z]'`
echo $cdsgq_dir 
cp $src_dir/import-serv/$cdsgq_dir*.txt  $tgt_dir/$q_dirs/import-serv/

if [[ $? -ne 0 ]];
then
echo "file copying failed,due to file not available"  >> $file_dir/file_move_import_serv.log
else
echo "file copied sucessfully into $q_dirs/import-serv directory"  >> $file_dir/file_move_import_serv.log
fi
fi
done


rm -f $src_dir/import-serv/*.txt


In ClientName_file.txt having the folder names as
Code:
q1
gf
cdsglobalac
cdsglobalhi
cdsglobalbg

Please help me in advance.

Last edited by zaxxon; 03-23-2010 at 03:55 AM.. Reason: use code tags please, ty
kirankumar
# 2  
Old 03-29-2010
I have a requirement to move the client files into a separate folders.file names comes as
q1_20100327.txt
gf_20100327.txt
ac_20100327.txt
hi_20100327.txt
based on the filenames we need to move those files into folders.folder names are
q1,gf,globalac,globalhi. For above i have done the coding and executing successfully.

Code:
#!/bin/ksh
src_dir=/home/global/source
tgt_dir=/home/global
file_dir=/home/global/import-file-move-to-instances
error_dir=/home/global/error_folder
now=`date +%Y%m%d`

if [[ -e $file_dir/file_move_import_serv.log ]];
then
rm -f $file_dir/file_move_import_serv.log
fi

cat $file_dir/ClientName_file.txt | awk '{ print $1 }' | while read q_dirs

do
echo $q_dirs

if [[ $q_dirs == 'q1' || $q_dirs == 'gf' ]];
then
cp $src_dir/import-serv/$q_dirs*.txt  $tgt_dir/$q_dirs/import-serv/
else
cdsgq_dir=`echo $q_dirs | sed 's/global//' | awk '{print}'|tr '[A-Z]' '[a-z]'`
echo $cdsgq_dir 
cp $src_dir/import-serv/$cdsgq_dir*.txt  $tgt_dir/$q_dirs/import-serv/

if [[ $? -ne 0 ]];
then
echo "file copying failed,due to file not available"  >> $file_dir/file_move_import_serv.log
else
echo "file copied sucessfully into $q_dirs/import-serv directory"  >> $file_dir/file_move_import_serv.log
fi
fi
done


rm -f $src_dir/import-serv/*.txt

In ClientName_file.txt having the folder names as

Code:
q1
gf
globalac
globalhi
globalbg

But,Now the client want to say is if the filename comes as capitals Q1_20100327.txt/GF_20100327.txt
AC_20100327.txt/HI_20100327.txt then we need to move those files into error folder.

Any help is much appreciated.

Thanks in advance

Last edited by pludi; 03-29-2010 at 03:52 AM.. Reason: code tags, please...
kirankumar
# 3  
Old 03-29-2010
you can try something like:

Code:
#!/usr/bin/ksh
source_dir=/home/forum/test/source
target_dir=/home/forum/test/target
error_dir=/home/forum/test/error

for file in $source_dir/*
do
	echo "Processing file ${file##*/}."
	t_file=${file##*/}
	t_name=${t_file%%_*}
	if [ -d $target_dir/$t_name ] ; then 
		mv $file $target_dir/$t_file && echo "Moved to Target Dir" || echo "Unable to move."
	else
		if [ "$t_name" = "$(echo $t_name | tr '[a-z]' '[A-Z]')" ]; then
			echo "$t_name found in UpperCase."
			mv $file $error_dir && echo "Moved to Error Dir" || echo "Unable to move."
		else
			echo "Dir $t_name has not found in Target Dir."	
		fi
	
	fi
	
done

Code:
/home/forum/test->ls source/*
source/DD_20100327.txt
source/aa_20100327.txt
source/bb_20100327.txt
source/cc_20100327.txt
source/ee_20100327.txt

/home/forum/test->ls target/*
aa
cc
dd


Code:
/home/forum/test->./move.ksh
Processing file DD_20100327.txt.
DD found in UpperCase.
Moved to Error Dir
Processing file aa_20100327.txt.
Moved to Target Dir
Processing file bb_20100327.txt.
Dir bb has not found in Target Dir.
Processing file cc_20100327.txt.
Moved to Target Dir
Processing file ee_20100327.txt.
Dir ee has not found in Target Dir.
/home/forum/test->


you can also create the target dir whenever it is not found. (depends on your requirement).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Small automation

Frequently we need to stop or start services on Linux systems. For exmaple : To start or stop vsftpd daemon # /etc/init.d/vsftpd start or # /etc/init.d/vsftpd stop Following script will check the vsftpd service and if it is running, it will be stopped or vice-versa. # cat... (5 Replies)
Discussion started by: snjksh
5 Replies

2. Shell Programming and Scripting

need a small help

Hi, sorry for inconvenience..wrong query posted. Thanks for your help. Thanks (1 Reply)
Discussion started by: kirankumar
1 Replies

3. UNIX for Dummies Questions & Answers

need help with small script

Hi I have the below file Name=abc Yr=2011 Mon=05 My script should be in such a way that whenever I run it then Month should increment by 1 and if the month is 12 then when I run the script then year should incremented by 1 and month Should become 01(I.e jan) Thanks for the help in... (6 Replies)
Discussion started by: kishu
6 Replies

4. Shell Programming and Scripting

Need small help

Hi all, I have two files in my folder 1.index.jsp 2.maintenance.jsp Once hit the URL in IE,It will call the index.jsp file than application working fine. I want to some maintenance in my application, during the application maintenance than it will... (1 Reply)
Discussion started by: lkeswar
1 Replies

5. Shell Programming and Scripting

Missing something small....

I have a feeling my eyes are burned and I am just missing something small here but can somebody tell me why this is not working.... #!/bin/ksh Trunk_Path=/lcl/sit/apps/Tivoli types="-name '*.sh' -o -name '*.conf' -o -name '*.rules' -o -name '*.dat' -o -name '*.props' -o -name '*.sql' -o -name... (10 Replies)
Discussion started by: LRoberts
10 Replies

6. Shell Programming and Scripting

need a small script

Hello all, i have a batmail process running on my machine(java process). i just need a script we should detect whether the batchnail is running or not.If not it should restart it. Can anyone assist me on this? (1 Reply)
Discussion started by: Rayzone
1 Replies

7. Shell Programming and Scripting

small script help

#!/bin/ksh for i in *.log* do ls $i|sed 's/\.log$//g' | while read file do echo "file $file is Running" >> lls.txt echo "***************">> lls.txt done done ------------------------------------------------------------------ the output is : file AdapterCCProvisioningInterface... (9 Replies)
Discussion started by: ali560045
9 Replies

8. IP Networking

Small problem...

Nice pictures, really free from virtual swingers club !!!! Anal sex Body art Gay Hardcore Lesbian Oral sex Cum XXX Models Private Image Galleries Private XXX photo Free!!! Say no to Spamers!!! Auto forum spam msg replacer by Swinguru © (1 Reply)
Discussion started by: Green_Monkey23
1 Replies

9. Shell Programming and Scripting

Small Help on SED

Hi All, I have come across a command echo "123 abc" | sed 's/*/& &/' output is 123 123 abc then i tried in different ways to get 123 abc abc as output. Can u please explain me the importance of & in the above command. Thank you - Chanakya (7 Replies)
Discussion started by: Chanakya.m
7 Replies

10. Shell Programming and Scripting

small script help

here is a small script: if ; then echo please enter an argument fi if [ "$1" = "tom"; then a=$1 echo $a fi here is my question. if the script name is j.sh and I run it : j.sh from shell prompt: without a parameter: it prints please enter an argument but if I go with . j.sh (current... (1 Reply)
Discussion started by: rkl1
1 Replies
Login or Register to Ask a Question