Find and move files parsed from cvs file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and move files parsed from cvs file
# 8  
Old 12-05-2011
Essentially mine without all the error checking and not bothering to convert case...
# 9  
Old 01-26-2012
Our source folder structure is more complex than I first stated.

/Server/ART/A/AHGK1/AHGK1FF0001_0200/ahgk1ff0023.pdf
/Server/ART/B/BFKR3/BFKR3FF0001_0200/bfkr3ff0018.ai
/Server/ART/B/BFKR3/BFKR3FF0001_0200/bfkr3ff0018.pdf
/Server/ART/B/BFKR3/BFKR3LC0001_0200/bfkr3lc0018.pdf
/Server/ART/C/CRU1/CRU1FF0001_0200/cru1ff0129.ai
/Server/ART/C/CRU1/CRU1FF0001_0200/cru1ff0129.pdf

The number of characters in the filename and path vary.
Therefore, I thought it necessary to use a find function with input from the csv file which has the basename minus extensions.
The follow script performs well on local files but crawls when run on files
from network shares.

Code:
#!/bin/bash
date +"DATE: %a %m/%d/%Y  TIME: %r  Auto" >> /Volumes/Serve/Users/Admin/Logs/SKU.log
date +"DATE: %a %m/%d/%Y  TIME: %r  Auto" >> /Volumes/Serve/Users/Admin/Logs/SKU_pdf.log
date +"DATE: %a %m/%d/%Y  TIME: %r  Auto" >> /Volumes/Serve/Users/Admin/Logs/Stamped_PDFs.log
date +"DATE: %a %m/%d/%Y  TIME: %r  Auto" >> /Volumes/Serve/Users/Admin/Logs/Removed_PDFs.log
#Directory for source files to br moved and renamed
src=/Volumes/Serve/Archive
#Directory in which the files are move to
dest=/Volumes/Serve/Art/
IFS=','
while read new old; do
	ai=$(find $src -name $old.ai)
	pdf=$(find $src -name $old.pdf)
	#Following varible is used to stamp the pdf file with the "New" number from the csv input
	pdfout="$dest$new"_"$(basename $pdf)"
	stamper=/Users/Admin/Desktop/TMP/stamp.pdf
	ait=$(find $src -name $old.ait)
	eps=$(find $src -name $old.eps)
	tiff=$(find $src -name $old.tiff)
	tif=$(find $src -name $old.tif)
	psd=$(find $src -name $old.psd)
	fh8=$(find $src -name $old.fh8)
	fh9=$(find $src -name $old.fh9)
	noExt=$(find $src -name $old)
	#This is where the pdf files get stamped with the "New" number
	echo $new" -> "$old" -> "$pdfout$(basename $pdf) >> /Volumes/Serve/Users/Admin/Logs/SKU_pdf.log
	gs -q -sDEVICE=pdfwrite -o $stamper -c "<< /PageSize [792 612]  >> setpagedevice 18 586 moveto /Helvetica-Bold_Italic findfont 14 scalefont setfont ("$new") show"
	pdftk $pdf stamp $stamper output $pdfout verbose | grep .pdf$ >> /Volumes/Serve/Users/Admin/Logs/Stamped_PDFs.log
	rm -f -v $pdf >> /Volumes/Serve/Users/Admin/Logs/Removed_PDFs.log
	#The following moves the remaining file types if they exist.
	mv -v $ai $dest${new}'_'${old}.ai >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $ait $dest${new}'_'${old}.ait >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $eps $dest${new}'_'${old}.eps >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $tiff $dest${new}'_'${old}.tiff >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $tif $dest${new}'_'${old}.tif >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $psd $dest${new}'_'${old}.psd >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $fh8 $dest${new}'_'${old}.fh8 >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $fh9 $dest${new}'_'${old}.fh9 >> /Volumes/Serve/Users/Admin/Logs/SKU.log
	mv -v $noExt $dest${new}'_'${old} >> /Volumes/Serve/Users/Admin/Logs/SKU.log
done < /Users/Admin/Desktop/List.csv

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash to move specific files from folders in find file

I have a directory /home/cmccabe/nfs/exportedReports that contains multiple folders in it. The find writes the name of each folder to out.txt. A new directory is then created in a new location /home/cmccabe/Desktop/NGS/API, named with the date. What I am trying to do, unsuccessfully at the moment,... (7 Replies)
Discussion started by: cmccabe
7 Replies

2. UNIX for Dummies Questions & Answers

Read in Multiple log files and output selected variables and values to cvs file

I have several problems with my problems: I hope you can help me. 1) the If else statement I am getting an error message. My syntax must be incorrect because the entire statement is throwing an error. For example in filew.log if these items don't exist Memsize, SASFoundation and also if... (0 Replies)
Discussion started by: dellanicholson
0 Replies

3. Shell Programming and Scripting

Find and Move files

I have the below command to delete all .xml files older than 90 days find . -type f -name '*.xml' -mtime +90 -exec rm {} \; What will be the command to move all the .xml files older than 90 days to this folder -> "/tmp/my_bk" My OS: SunOS my-pc 5.10 Generic_150400-17 sun4v sparc... (4 Replies)
Discussion started by: mohtashims
4 Replies

4. UNIX for Dummies Questions & Answers

Find a list of files in directory, move to new, allow duplicates

Greetings. I know enough Unix to be dangerous (!) and know that there is a clever way to do the following and it will save me about a day of agony (this time) and I will use it forever after! (many days of agony saved in the future)! Basically I need to find any image files (JPGs, PSDs etc)... (5 Replies)
Discussion started by: Clyde Lovett
5 Replies

5. Shell Programming and Scripting

Please help list/find files greater 1G move to different directory

I have have 6 empty directory below. I would like write bash scipt if any files less "1000000000" bytes then move to "/export/home/mytmp/final" folder first and any files greater than "1000000000" bytes then move to final1, final2, final3, final4, final4, final5 and that depend see how many files,... (6 Replies)
Discussion started by: dotran
6 Replies

6. Shell Programming and Scripting

find command to move the files to other folder - ksh 88

Hi , I've learnt that the following command will remove the files from the given folder for given no.of days find /home/etc -type f -atime -10 -exec rm -f {} \; But how can I change the above command that will move the files to another specified directory instead of removing the... (1 Reply)
Discussion started by: smile689
1 Replies

7. Shell Programming and Scripting

Find and Move Files up One Level

Hi All, So I have another question. I'm trying to search for files with a certain extension and then move all of them up one level in the folder hierarchy. So something like this: original: /path/to/file/test.txt after: /path/to/test.txt I had some great help recently with another... (4 Replies)
Discussion started by: ideal2545
4 Replies

8. Shell Programming and Scripting

find top 100 files and move them

i have some 1000 files in my dir and i want to find top 100 files and move them to some other location: below the 2 commands i used, but it is not working ls -ltr | grep ^- | head -100 | xargs mv destination - _________>not working ls -ltr | grep ^- | head -100 | xargs mv {}... (3 Replies)
Discussion started by: ali560045
3 Replies

9. UNIX for Advanced & Expert Users

CVS: move part of repository (branch) to SVN server

Hi all, We have CVS server running for few years with absolutely no problems. Because of conditions not depending on me, I'm forced to move some part of our repository to another server (SVN). I need to move ONLY one branch from CVS server to SVN server. The branch must be moved with all... (7 Replies)
Discussion started by: +Yan
7 Replies

10. Shell Programming and Scripting

Find, Append, Move & Rename Multiple Files

Using a bash script, I need to find all files in a folder "except" the newest file. Then I need to insert the contents of one text file into all the files found. This text needs to be placed at the beginning of each file and needs a blank line between it and the current contents of the file. Then I... (5 Replies)
Discussion started by: Trapper
5 Replies
Login or Register to Ask a Question