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?
# 8  
Old 12-24-2015
Quote:
Originally Posted by RudiC
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.
thank you very much rudi, but i might forgot to say, that my main problem is, that i dont know the names of the folders before :-/
# 9  
Old 12-25-2015
So ...?
# 10  
Old 01-07-2016
Sorry, I had a few days off.
So what I mean is, that this "folder" or "folder3" is not always the same name. Its name could be like "xyz" and the next folder is like "12345".
What I understand is, the first line is the rename process, but in the 2nd line you wrote "/folder3/folder3sub/file.cad", but this should be done with variables, caus the whole path could be different, so even the rmdirpath.
# 11  
Old 01-07-2016
The second and third line are the result of the first, echoing what would be done (instead of doing it). Modify the start folder in the find command, run the short script and report back on the results.
# 12  
Old 01-08-2016
Oh, I could have seen that by my own :S

Code:
root@s17989037:/home/test# find ./ -name "*.txt" | while read FN; do PT=${FN%/*}/; FN=${FN#$PT}; echo mv ${PT}*.cad finished/${FN%.txt}.cad; echo rmdir ${PT%/*/*}; done
mv ./bla.sadasdasdasd.dasd/abcde.cad finished/prrrrrrrr.cad
rmdir .
mv ./asdfffff/sub/file123.cad finished/asd.cad
rmdir ./asdfffff
mv ./1337/test123.cad finished/noname.cad
rmdir .
root@s17989037:/home/test#

okay, i got it working with rm -rf , but for some directories it still says

Code:
rm: cannot remove directory: `.'
rm: cannot remove directory: `.'
rm: cannot remove directory: `.'
rm: cannot remove directory: `.'

i changed it to
Code:
rm -rf ${PT%}

and this seems to work fine
what were these /*/* for?

---------- Post updated at 09:58 AM ---------- Previous update was at 09:33 AM ----------

Okay, i dont want to edit my last post again.
So for now its working with 2 problems:

directories with *.txt and without *.cad are deleted too (should not happen)
and
if im in a subdirectory, the mainfolder is not deleted, just the subdirectory

Last edited by peter1337; 01-08-2016 at 10:53 AM..
# 13  
Old 01-09-2016
That scriptlet was not intended to run in ./ but on subdirectories below it.
/*/* expands to two directory levels below . .

You could rm the .txt file IF the .cad file has been mved successfully; then rmdir should work correctly , too.
Why should the main folder be deleted?
# 14  
Old 01-26-2016
After some hours of getting into this bash stuff, I got my script finally working, as I want it. Even my script looks pretty different to yours I build it up on your "-name
Code:
-name "*.txt" | while read FN; do PT=${FN%/*}/; FN=${FN#$PT};

Part
Thank you :-)
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