Visit Our UNIX and Linux User Community


Need to move and rename a list of files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need to move and rename a list of files
# 1  
Old 07-30-2009
Need to move and rename a list of files

Hi,

I need to do something easy but I can't seem to figure out how to do this.

Let's say I have 6 files in the directory below:
/ebsbeta_f/flash/EBSUATQB/onlinelog
o1_mf_6_55klt7nr_.log
o1_mf_3_55klskj4_.log
o1_mf_4_55klsrl1_.log
o1_mf_5_55klt09p_.log
o1_mf_2_55klv1ts_.log
o1_mf_1_55kmbl9l_.log

And I would like to move and rename these to /ebssand/oradata
o1_mf_6_55klt7nr_.log -> log06.dbf
o1_mf_3_55klskj4_.log -> log03.dbf
o1_mf_4_55klsrl1_.log -> log04.dbf
o1_mf_5_55klt09p_.log -> log05.dbf
o1_mf_2_55klv1ts_.log -> log02.dbf
o1_mf_1_55kmbl9l_.log -> log01.dbf

I know I can create a manual script $ mv a b, but I would like to know how I can automate this with a wrapper that read the source files and moves&renames these to the destination location in case more files are added to this list.

Thanks!
Mark
# 2  
Old 07-30-2009
You can try something like:

Code:
ls o1_mf_*.log | 
awk -F"_" '{system("mv "$0 " /ebssand/oradata/" sprintf("log%.2d.dbf",$3))}'

Regards
# 3  
Old 07-30-2009
Thanks for the prompt response, but I'm getting this:

orabeta@hafindb01q: /home/orabeta $ ls /ebsbeta_f/flash/EBSUATQB/onlinelog/o1_mf_*.log | awk -F"_" '{system("cp "$0 " /ebssand/oradata/" sprintf("log%.2d.dbf",$3))}'

cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
cp: /ebssand/oradata/log00.dbf: The file access permissions do not allow the specified action.
# 4  
Old 07-30-2009
Do you have write permission in the destination directory? Does it work if you change the directory to the location of the files?

Code:
cd /ebsbeta_f/flash/EBSUATQB/onlinelog
ls o1_mf_*.log | 
awk -F"_" '{system("mv "$0 " /ebssand/oradata/" sprintf("log%.2d.dbf",$3))}'

Regards
# 5  
Old 07-30-2009
Quote:
Originally Posted by Franklin52
Do you have write permission in the destination directory? Does it work if you change the directory to the location of the files?

Code:
cd /ebsbeta_f/flash/EBSUATQB/onlinelog
ls o1_mf_*.log | 
awk -F"_" '{system("mv "$0 " /ebssand/oradata/" sprintf("log%.2d.dbf",$3))}'

Regards
Thank you; that worked!

---------- Post updated at 02:58 PM ---------- Previous update was at 02:43 PM ----------

One more question (and I thought I could figure it out on my own using your code but I can't Smilie ):
Let's say I want to copy - without renaming - the following 3 files: /ebsbeta/oradata/cntrl01.dbf, /ebsbeta/oradata/cntrl02.dbf, /ebsbeta/oradata/cntrl03.dbf to /overflow. How can I make a loop to copy any cntrl* files?
# 6  
Old 07-30-2009
Why don't you use an ordinary cp command, you don't need awk for this if you place all the commands in a script.

Code:
cp cntrl*.dbf /overflow

Regards
# 7  
Old 07-30-2009
Quote:
Originally Posted by Franklin52
Why don't you use an ordinary cp command, you don't need awk for this if you place all the commands in a script.

Code:
cp cntrl*.dbf /overflow

Regards
My bad. I want to copy AND rename them... I want to append beta_ to the copied files...

Previous Thread | Next Thread
Test Your Knowledge in Computers #177
Difficulty: Easy
The Apple Computer Company was founded on April 1, 1976.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

SBATCH trinity for multiple files and rename/move the output files

Hey guys, I have wrote the following script to apply a module named "trinity" on my files. (it takes two input files and spit a trinity.fasta as output) #!/bin/bash -l #SBATCH -p node #SBATCH -A <projectID> #SBATCH -n 16 #SBATCH -t 7-00:00:00 #SBATCH --mem=128GB #SBATCH --mail-type=ALL... (1 Reply)
Discussion started by: @man
1 Replies

2. Shell Programming and Scripting

How to rename (move) most recent files in directory?

I'm using cygwin32 on Windows. DN is an environment variable pointed at my download directory. This command works to move the single most recent file in my download directory to my current directory: mv "`perl -e '$p = $ARGV; opendir $h, $p or die "cannot opendir $p: $!"; @f = sort { -M $a... (2 Replies)
Discussion started by: siegfried
2 Replies

3. UNIX for Dummies Questions & Answers

Rename files in a directory and move them

I have a directory e2e_ms_xfer/cent01 this contains the multiple files some of which will be named below with unique date time stamps e2e_ms_edd_nom_CCYYMMDD_HHMM.csv What I want to do is in a loop 1) Get the oldest file 2) Rename 3) Move it up one level from e2e_ms_xfer/cent01 to... (1 Reply)
Discussion started by: andymay
1 Replies

4. Shell Programming and Scripting

Replace string, grab files, rename and move

Hello there! I'm having a lot of trouble writing a script. The script is supposed to: 1) Find all files with the name "Object.mtl" within each folder in the directory: /Users/username/Desktop/convert/Objects 2) Search and replace the string ".bmp" with ".tif" (without the quotations) 3)... (1 Reply)
Discussion started by: Blue Solo
1 Replies

5. Shell Programming and Scripting

Windows Power Shell - rename files and move

hi people; i want to make a file/folder operation as follows. - i have 41 folders in Windows and each of them have same-named files (~200 files each) inside. - i want to stack these files together in a folder but Windows is asking to "overwrite" (as usual) since the file names are the same.... (2 Replies)
Discussion started by: gc_sw
2 Replies

6. Shell Programming and Scripting

Rename/Move files and schedule the script

Hello, I'm new in the forum and in UNIX scripting, what I need is to write a simple batch script that renames or move the files back & forth from one directory to another, and then schedule the script to run on the server when the scheduled down time is, which is on Thursdays at 8pm and during... (5 Replies)
Discussion started by: dannyghost
5 Replies

7. UNIX for Dummies Questions & Answers

Using Rename to move files

I am connecting to a remote server (Unix) and doing a ftp dowmload of files. The script (VB script) works fine except for not being able to move the downloaded files on the remote server to another folder. I need to move all files with an .asc extesnion from folder "tovecellio_edi" to folder... (1 Reply)
Discussion started by: snufse
1 Replies

8. 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

9. Shell Programming and Scripting

Move and rename files in seq. with padded digits

Greetings, I am new to scripting, but find if I can see the code working for a given problem, then I can eventually figure it out. (9 Replies)
Discussion started by: rocinante
9 Replies

10. Shell Programming and Scripting

Move files and rename ??

1. If I have a file-yyyymmdd.dat in a directory DATA1, then how do I move this file to directory DATA2 and the file name change to file-yyyymmdd.dat.currenttime I can manual do this $mv fileA-yyyymmdd.dat ./DATA2/fileA-yyyymmdd.dat.`date +%Y%m%d%H%M%S` but how do I move all of the files in... (1 Reply)
Discussion started by: sabercats
1 Replies

Featured Tech Videos