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
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.
(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"?
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.
(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:
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
Give this - although not thoroughly tested - a try and report back:
Remove the echo if happy with the results. You may need to use the rm -f instead of rmdir.
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)