Shell Script for renaming and moving Files - Easy?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Script for renaming and moving Files - Easy?
# 1  
Old 12-23-2015
Question Shell Script for renaming and moving Files - Easy?

Hey guys,
ive been working on this for about 2hrs now - without any solution.
At first I need to say I dont have skills in linux bash scripting, but I tried to use some codesnippets and manuals from google.

What I want to do:
I have different folders including 2 different filestypes with diffent names, ex. /folderxyz/importantname.txt, /folderxyz/file.cad
I want the file.cad named to importantname.cad (so name without ending from txt file), moving the renamed file to a different folder and delete the folder of these two files.

I know I need to use some kind of loop, but I didnt even get the code to rename the file. I startet getting the folders with
Code:
find -name *.txt

but I didnt get managed to handle the string to seperate the name (for rename) and the dir to change the directory.

Could you give me some help?
Regards

Last edited by Don Cragun; 12-23-2015 at 10:20 PM.. Reason: Add CODE and ICODE tags.
# 2  
Old 12-23-2015
(1) Do you have only two files in the directory "folderxyz", as indicated in your post?
(2) Or do you have more than two?

(3) In case you have more than two, then what is the relationship between a "cad" file name and a "txt" file name it should be converted to? For example, if the directory "folderxyz" has 4 files: "foo.txt", "bar.cad", "fizz.txt" and "buzz.cad", then should "buzz.cad" be renamed to "fizz.cad" or "foo.cad"?
# 3  
Old 12-23-2015
Repeating some of what durden_tyler said and adding some additional notes: You need to be much clearer about what you are trying to do and what you have done.

The find utility is used to search a file hierarchy for various criteria. In the sample you provided, you will get a syntax error if the directory in which you run this command contains more than one file with a name ending with the string .txt, will search the file hierarchy for a file with the same name as the file in current directory with a named ending in .txt if there is exactly one file in the current directory with a name ending in .txt, or will find all of the files in the file hierarchy rooted in the current directory with names ending in .txt if there aren't any files in the current directory with a name ending with .txt.

Once you have found a file with a name ending in .txt, how do you determine which file with a name ending in .cad should be renamed?

After renaming that .cad file (and moving or copying it to another directory), do you really want to remove every file in the current directory (including the .txt that you haven't moved or copied to anywhere else) even if there are other .txt and/or .cad files remaining in that directory or in subdirectories under that directory?

And, to what directory do you want to move the renamed .cad files?

We'll be happy to help you figure out how to write a bash script that will run on a Linux operating system if you give us a clear description of what you're trying to do. Without a clear description, we can make wild guesses that could waste a lot of your time and ours.
# 4  
Old 12-24-2015
Quote:
Originally Posted by durden_tyler
(1) Do you have only two files in the directory "folderxyz", as indicated in your post?
(2) Or do you have more than two?
there a different types of files, even subfolders, but just only one .txt and .cad

Quote:
Originally Posted by Don Cragun
We'll be happy to help you figure out how to write a bash script that will run on a Linux operating system if you give us a clear description of what you're trying to do. Without a clear description, we can make wild guesses that could waste a lot of your time and ours.
sure, i try to give my best explaning my plans in english.
i try to explain this by creating a structure with all possibilities:
Code:
myrootfolder/folder1/ #no .cad and no .txt file - can be ignored
myrootfolder/folder2/ #including .txt or .cad, but not both - can be ignored
myrootfolder/folder3/ #including both files, need to rename the .cad, move the cad to myrootfolder/finished/ and remove folder3
or
myrootfolder/folder4/folder4sub/ #including both files, need to rename the .cad, move the cad to myrootfolder/finished/ and remove folder4

# 5  
Old 12-24-2015
Quote:
Originally Posted by peter1337
.
.
.
there a different types of files, even subfolders, but just only one .txt and .cad
.
.
.
Just to be sure - you want the .cad renamed and moved, and everything else deleted - files of any "type", and subdirectories?

---------- Post updated at 12:32 ---------- Previous update was at 12:30 ----------

And, there's always one .cad and one .txt?
# 6  
Old 12-24-2015
Quote:
Originally Posted by RudiC
Just to be sure - you want the .cad renamed and moved, and everything else deleted - files of any "type", and subdirectories?

---------- Post updated at 12:32 ---------- Previous update was at 12:30 ----------

And, there's always one .cad and one .txt?
yes, this procedure for every folder (or subfolder)
not always, there are folders with different files too, but they should stay untouched only performing actions on folders that contains .txt and .cad
# 7  
Old 12-24-2015
Give this - although not thoroughly tested - a try and report back:
Code:
find ./folder? -name "*.txt" | while read FN; do PT=${FN%/*}/; FN=${FN#$PT}; echo mv ${PT}*.cad finished/${FN%.txt}.cad; echo rmdir ${PT%/*/*}; done
mv ./folder3/folder3sub/file.cad finished/important.cad
rmdir ./folder3

Remove the echo if happy with the results. You may need to use the rm -f instead of rmdir.
This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Moving and renaming files

I have a directory full of directories, say called A B C D E .... In each of these directories there are files called 1.dsp 2.dsp 3.dsp ..... along with others (with different extensions) I need to go through each of these directories and move the dsp file to another folder, but with the name now... (6 Replies)
Discussion started by: claire.a
6 Replies

2. Shell Programming and Scripting

Moving and renaming multiple files in a directory

Hi. I am trying to automate the movement and renaming of a number of files in a directory. I am using the 'mv' command as I do not have access to 'rename'. I have the following scripted FILES=$(ls /transfer/move/sys/mail/20130123/) if ; then for i in ${FILES} ; do mv... (4 Replies)
Discussion started by: jimbojames
4 Replies

3. Shell Programming and Scripting

Complex renaming then moving files

I am a biologist and using an program on a computer cluster that generates a lot of data. The program creates a directory named ExperimentX (where X is a number) that contains files "out.pdb" and "log.txt". I would like to create a script that renames the out.pdb file to out_ExperimentX.pdb (or... (1 Reply)
Discussion started by: yaledocker
1 Replies

4. Shell Programming and Scripting

Moving and renaming large ammount of files

Hey, I'm kinda new to the shell scripting and I don't wanna mess things up yet :) Looking for a solution to the following: I need to move all the files like "filename.failed.dateandtime" to another directory also renaming them "filename.ready". I can't figure how to do this with multiple files... (4 Replies)
Discussion started by: sg3
4 Replies

5. Shell Programming and Scripting

Need script for renaming and moving files one by one...

Dears, I need your help! I got a problem and found some workaround solution but I donno how to realize it. I have a number of files (about 300 each day) and I need them to be renamed. All these files has fixed number of letters and name looks like this one:... (7 Replies)
Discussion started by: nypreH
7 Replies

6. Shell Programming and Scripting

Need help with shell script for moving/deleting/renaming files

Hi. I need help with a little script that will be used to move some files to their parent directory, delete the directory, rename one file in the parent directory and delete another, then continue to the next. Here's an example: /var/media/Music/Genesis/1970 album - Trespass (2008 Box -... (4 Replies)
Discussion started by: aflower
4 Replies

7. UNIX for Dummies Questions & Answers

Moving files out of multiple directories and renaming them in numerical order

Hi, I have 500 directories each with multiple data files inside them. The names are sort of random. For example, one directory has files named e_1.dat, e_5.dat, e_8.dat, etc. I need to move the files to a single directory and rename them all in numerical order, from 1.dat to 1000(or some... (1 Reply)
Discussion started by: renthead720
1 Replies

8. UNIX for Dummies Questions & Answers

Renaming Files using Shell Script

Hi Gurus, I have some files(all ending with .out as extension). Ex: aa1.out aa2.out aa3.out I would like to append each file with the current date to the end of the file so that they should become aa1_20090504.out. So I am using rename as follows: for i in path/aa* ; do mv $i... (5 Replies)
Discussion started by: asmfloyd
5 Replies

9. Shell Programming and Scripting

Moving multiple files and renaming them on the fly

Hi All, Being new to scripting I am facing a new situation. We have an application that generates a file lets say dumpfile for each user under the users home directory when they execute the application. This is quite a huge file and imagine having that for over 40 users on a daily basis. The... (1 Reply)
Discussion started by: daemongk
1 Replies

10. Shell Programming and Scripting

moving and renaming multiple files

Greetings, I know i can use the mv command to move and rename one file. How can I do this with multiple files? example pic01.bmp to pic0001.bmp how can i perform this function on an entire directory of sequential files and keep them in sequence? Hints, suggestions are most welcome:) ... (1 Reply)
Discussion started by: rocinante
1 Replies
Login or Register to Ask a Question