Use find with cp and sed in ksh to copy files to a slightly different location


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Use find with cp and sed in ksh to copy files to a slightly different location
# 8  
Old 10-19-2016
I'm be tempted to tackle the problem like this:

Code:
cd /dir1/dir2/save

for file in *_v2
do
   [ -f "$file" ] && cp "$file" ..
done

On GNU systems I'd probably do:

Code:
find /dir1/dir2/save -name "*_v2" -print0 | xargs --no-run-if-empty -0 cp -t /dir1/dir2

# 9  
Old 10-20-2016
I went with bakunin's suggestion since there are multiple sub-directories underneath /dir1/dr2/save and I want to copy the files ending _v2 outside of save and keep the directory structure.

bakunin, could you please explain the magic behind this line:
Code:
outfile="${infile%%/save*}${infile#*save}"

Thank you!

---------- Post updated at 06:44 AM ---------- Previous update was at 03:43 AM ----------

Is there a way of removing _v2 from the end of the file in the line below?
Code:
outfile="${infile%%/save*}${infile#*save}"

# 10  
Old 10-20-2016
How about
Code:
outfile=${outfile%_v2}

?

man bash: "Parameter Expansion" is a good reading for this...
This User Gave Thanks to RudiC For This Post:
# 11  
Old 10-20-2016
The following did the trick:
Code:
print - cp "$infile" "${outfile%%_v2}"

Thank you!
# 12  
Old 10-20-2016
I don't think the second % is needed as you want to remove one single occurrence only.
# 13  
Old 10-20-2016
Quote:
Originally Posted by RudiC
I don't think the second % is needed as you want to remove one single occurrence only.
Hi RudiC,
You are correct. The commands:
Code:
print - cp "$infile" "${outfile%%_v2}"
        and:
print - cp "$infile" "${outfile%_v2}"

produce exactly the same results in this case.

Hi ejianu,
Even though both forms produce the same results in this case, I personally prefer to use the % version (like RudiC suggestion in post #10) instead of the %% version you used in post #11 when there is only one possible match.

The difference between the two cases is apparent when the given pattern can match more than once. For example, the following commands:
Code:
x=abc.def.ghi
echo ${x%%.*} ${x%.*}

produce the output:
Code:
abc.def abc

because %% removes the longest match for .* from the end of $x and % removes the shortest match for .* from the end of $x. (Note that the patterns used in ${var%%pattern} and ${var%pattern} are filename matching patterns; not basic regular expressions and not extended regular expressions.)

Hope this helps,
Don
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Copy data at specified location from multiple files

Hello everyone, Im super new to coding but increasingly in need of it at work. Im have task stacked because of this problems, that I cannot figure out how to solve looking on the internet after trying many many things that looked similar to me. I have multiple data files of the form (see below).... (2 Replies)
Discussion started by: Xfiles_fan
2 Replies

2. Shell Programming and Scripting

Find and Copy file of specific location

Dear All, I need to transfer all files present in one location to another but those files should be of specific extension like. Find and copy all files of extension .xls, .pdf, .txt from location usr/tmp to location /per/Treat (6 Replies)
Discussion started by: yadavricky
6 Replies

3. Shell Programming and Scripting

How to copy files from one location to another using xargs??

Hello Experts, I need to copy files from one location to another using xargs. Tried something like this (In Ubuntu & Solaris ). mkdir -p 1234; find /home/emd/Desktop/n007/M007/ -type f -name "A2014*" | xargs -0 cp -r {} /home/emd/Desktop/1234 But every time i run this, a weird error... (6 Replies)
Discussion started by: Saidul
6 Replies

4. Shell Programming and Scripting

Copy files from one location to another

I have below files in one location /test/files and also for each dates there are similar files A20130924.0000-0005_file1 A20130924.0000-0005_file2 A20130924.0005-0010_file1 A20130924.0005-0010_file2 . . . A20130924.2355-0000_file1 A20130924.2355-0000_file2 If i execute the script like... (4 Replies)
Discussion started by: Saidul
4 Replies

5. Shell Programming and Scripting

How to copy files from one location to another based on a priority?

Hi Gurus, I am a newbie to shell scripting and I am facing a problem right now.I have to automate the copy of files based on a priority.The scenario is as below: 1) There will be files from Mon-Fri with Mon file being named as abc_def_01_YYYYMMDD and Tue file being abc_def_02_YYYYMMDD and so... (4 Replies)
Discussion started by: vikramgk9
4 Replies

6. UNIX for Dummies Questions & Answers

how to copy files and record original file location?

:EDIT: I think my post name should have been labeled: how to copy files and record original file location. not "retain". Hello, this is my first post! I searched the forums a lot before posting, but was unable to answer my question. Here's my problem: There are several hundred text files... (4 Replies)
Discussion started by: willie8605
4 Replies

7. Shell Programming and Scripting

Copy files in thumbnail folder to a secondary location for Amazon S3

Hello all! I am trying to create a script that will copy files from one location, to another but only folders that are filled with thumbnails to an exact directory replica in the second location. For example: /images/2012/01/19/Event/Photographer/thumbnails to ... (4 Replies)
Discussion started by: Buzzman25
4 Replies

8. Shell Programming and Scripting

Shell Script for Copy files from one location to another location

Create a script that copies files from one specified directory to another specified directory, in the order they were created in the original directory between specified times. Copy the files at a specified interval. (2 Replies)
Discussion started by: allways4u21
2 Replies

9. UNIX for Advanced & Expert Users

copy files from one location to similar location

I need help in forming a script to copy files from one location which has a sub directory structure to another location with similar sub directory structure, say location 1, /home/rick/tmp_files/1-12/00-25/ here 1-12 are the number of sub directories under tmp_files and 00-25 are sub... (1 Reply)
Discussion started by: pharos467
1 Replies
Login or Register to Ask a Question