Copy files with same name but different extension from 2 different directory


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Copy files with same name but different extension from 2 different directory
# 1  
Old 06-13-2012
Copy files with same name but different extension from 2 different directory

Hi all,

i have 2 directory of files, the first directory(ext1directory) contain files of extension .ext1 and the second directory(allextdirectory) contains files of multiple extensions (.ext1,.ext2,.ext3,..)

so i want to copy the files from directory 2(allextdirectory) that have the same name as the files in directory 1(ext1directory) but only the files with different extension(ext2)

how this can be done in a shell script?

thank you.
# 2  
Old 06-13-2012
How many extensions do you have?
Code:
cd allextdirectory
cp *.ext2 *.ext3 *.ext4 ext1directory

Alternative
Code:
for i in $(ls allextdirectory| grep -v ext1)
do
cp $i ext1directory
done


Last edited by Leion; 06-13-2012 at 06:01 AM.. Reason: Add on
# 3  
Old 06-13-2012
something like
Code:
cd $DIR2
for FILE in *
do
    [[ -f $DIR1/$FILE ]] || cp $FILE $DIR1
done

# 4  
Old 06-13-2012
thank you,
in the first directory i have only 1 extension (ext1)

and the second directory i have 3 extensions(ext1,ext2,ext3)
@Leion the copy should be made based on the files that have the same name and not everything .. is what you wrote will do the trick ??

---------- Post updated at 04:06 AM ---------- Previous update was at 03:59 AM ----------

Quote:
Originally Posted by Leion
How many extensions do you have?
Code:
cd allextdirectory
cp *.ext2 *.ext3 *.ext4 ext1directory

Alternative
Code:
for i in $(ls allextdirectory| grep -v ext1)
do
cp $i ext1directory
done

can you please tell me where in this code you copy based on the same file name in the 2 directories?? because i did not understand it ..

---------- Post updated at 04:07 AM ---------- Previous update was at 04:06 AM ----------

Quote:
Originally Posted by hergp
something like
Code:
cd $DIR2
for FILE in *
do
    [[ -f $DIR1/$FILE ]] || cp $FILE $DIR1
done

can please also tell me where this will copy based on equal file names in both directories??
# 5  
Old 06-13-2012
I did not read the qn fully..
try the code below.. remove the echo once verified this is what you need..

Code:
for i in $(ls ext1directory)
do
ii=$(i%ext1)
   for j in $(ls allextdirectory/${ii}* | grep -v ${i})
   do
   echo cp $j ext1directory
   done
done


Last edited by Leion; 06-13-2012 at 06:10 AM.. Reason: corrected directory
# 6  
Old 06-13-2012
Quote:
Originally Posted by Leion
I did not read the qn fully..
try the code below.. remove the echo once verified this is what you need..

Code:
for i in $(ls ext1directory)
do
ii=$(i%ext1)
   for j in $(ls allextdirectory/${ii}* | grep -v ${i})
   do
   echo cp $j ext1directory
   done
done

this is copying everything from the allextdirectory, not only the equal names.. besides i want to copy only the files that have same names and ext2. i don't want to copy other extensions (even if the files have exact names)
# 7  
Old 06-13-2012
Quote:
Originally Posted by shelladdict
this is copying everything from the allextdirectory, not only the equal names.. besides i want to copy only the files that have same names and ext2. i don't want to copy other extensions (even if the files have exact names)
no.. the ii variable will get the filename without extension. and the grep -v part will filter away the original filename before copy..

---------- Post updated at 05:26 PM ---------- Previous update was at 05:23 PM ----------

Just copy ext2 and no other extensions.
Code:
for i in $(ls ext1directory)
do
ii=$(i%ext1)
cp allextdirectory/${ii}ext2 ext1directory
done

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Copy files based on specific word in a file name & its extension and putting it in required location

Hello All, Since i'm relatively new in shell script need your guidance. I'm copying files manually based on a specific word in a file name and its extension and then moving it into some destination folder. so if filename contains hyr word and it has .md and .db extension; it will move to TUM/HYR... (13 Replies)
Discussion started by: prajaktaraut
13 Replies

2. Shell Programming and Scripting

Copy files with extension .sh

Hi all... I am trying to copy all my shell script to some directory using following command, I want to simplify it by not using awk..please some one help me.... find -name "*.sh" | awk -F"/" '{a=$NF;gsub(".sh",x,a);cmd="cp"" " $0" ""/home/akshay/MY_ALL/"a"_"++i".sh";system(cmd)}' (3 Replies)
Discussion started by: Akshay Hegde
3 Replies

3. Shell Programming and Scripting

Delete all files with specific extension in directory tree

I'm sure this has been asked many times, but a search didn't turn up a definitive best method for this (if there ever is such a thing). I have been using rsync to back up my main data directory, but I have accumulated a large number of older backups that I don't need. All of the files I don't... (14 Replies)
Discussion started by: LMHmedchem
14 Replies

4. Shell Programming and Scripting

Copy the files in directory and sub folders as it is to another directory.

How to copy files from one directory to another directory with the subfolders copied. If i have folder1/sub1/sub2/* it needs to copy files to folder2/sub1/sub2/*. I do not want to create sub folders in folder2. Can copy command create them automatically? I tried cp -a and cp -R but did... (4 Replies)
Discussion started by: santosh2626
4 Replies

5. Shell Programming and Scripting

List files with *.i extension in a directory and all its subdirectories + 30days old then remove

I need to write a script to : list files with *.i extension in a directory and all its subdirectories + 30days old, save it in a file and then remove (2 Replies)
Discussion started by: lena keung
2 Replies

6. Red Hat

Unable to copy files due to many files in directory

I have directory that has some billion file inside , i tried copy some files for specific date but it's always did not respond for long time and did not give any result.. i tried everything with find command and also with xargs.. even this command find . -mtime -2 -print | xargs ls -d did not... (2 Replies)
Discussion started by: before4
2 Replies

7. UNIX for Dummies Questions & Answers

Copy files into another directory

I have a folder will a lot of documents (pdf, xls, doc etc.) which users have uploaded but only 20% of them are currently linking from my html files. So my goal is to copy only the files which are linked in my html files from my Document directory into another directory. Eg: My documents exist... (5 Replies)
Discussion started by: ankitha
5 Replies

8. UNIX for Dummies Questions & Answers

copy all files matching the request and change the extension at the same time

Hi everyone When I'm starting my script I'm giving to it two parameters: script.sh ext1 ext2 I need to copy all files in a directory fitting ext1, to the same folder, with the same names, but with the changed extension to ext2. Till now I've just managed to do it for only 1 file, but I... (16 Replies)
Discussion started by: vacuity93
16 Replies

9. Shell Programming and Scripting

copy files with new extension in same directory

I've been able to find all the extensionless files named photos using the command: find /usr/local/apache/htdocs -name photos -print0 I need to copy those files to the name photos.php in their same directory. I've found a bunch of xarg examples for moving to other directories but I wasn't... (7 Replies)
Discussion started by: dheian
7 Replies

10. Shell Programming and Scripting

Checking if the files in a directory have a txt extension

foreach file ($dir1/*) if ($file ~ *.txt) then echo "Skipping $file (is a txt file)" endif end that should work right guys? :confused: (15 Replies)
Discussion started by: pantelis
15 Replies
Login or Register to Ask a Question