Need help to mass rename files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Need help to mass rename files
# 8  
Old 04-21-2010
I'd first type the following command in both directories to see how many lines are missing:
Code:
$ ls | wc

Quote:
Originally Posted by Kingzy
So there may be a chance that, in the filenames, after the '00*-' part, the rest of the filename is the same. Could it be the reason that some mp3s disappeared?
Definitely!
Simply add the -i option to your mv command, and you will be asked if it occurs that a file should be overwritten:
(Using the -v option might also be helpful)
Code:
$ touch 010-actualsongname10.mp3
$ touch 020-actualsongname10.mp3
$ touch 030-actualsongname30.mp3
$ touch 040-actualsongname40.mp3
$ touch 050-actualsongname50.mp3
$ touch 060-actualsongname60.mp3
$ touch 150-actualsongname60.mp3
$ for i in *
do
mv -iv "$i" "`echo $i | cut -d "-" -f2`"
done
010-actualsongname10.mp3 -> actualsongname10.mp3
overwrite actualsongname10.mp3? (y/n [n]) 
not overwritten
030-actualsongname30.mp3 -> actualsongname30.mp3
040-actualsongname40.mp3 -> actualsongname40.mp3
050-actualsongname50.mp3 -> actualsongname50.mp3
060-actualsongname60.mp3 -> actualsongname60.mp3
overwrite actualsongname60.mp3? (y/n [n]) 
not overwritten
$

You could use the -n option too. Check "man mv".
# 9  
Old 04-21-2010
Ok, so regardless of the disappearing mp3s thing, i noticed that this command:

Code:
mv "$i" "`echo $i | cut -d "-" -f2`"

when it comes to a handful of mp3s, somehow most of their filename is erased. Only a few characters are left.

I apologize for not noticing this earlier.

So here is the code by bakunin, which I'm using again

Code:
for file in [0-9][0-9][0-9]-* ; do 
  mv "$file" "${file#???-}"
done

Will it be possible to merge your idea with this code?
# 10  
Old 04-22-2010
Will it be possible to merge your idea with this code?

Yes, of course:

Code:
for file in [0-9][0-9][0-9]-* ; do 
     if [ -f "${file#???-}" ] ; then
          print - "ERROR: file ${file#???-} already exists, leaving $file untouched"
     else
          mv "$file" "${file#???-}"
     fi
done

The code now cycles through the names of the original files (in each execution of the loop the variable "$file" holds one of these filenames), constructs the new name from it (the "${file##???-}"), tests if there is already a file named that way (the "if [ -f "${file##???-}" ]" means "if there is a file named whatever "${file##???-}" evaluates to) and prints an error message instead of copying it over with the second file.

You will have to manually rename the files left over this way.

I hope this helps.

bakunin
# 11  
Old 04-22-2010
MySQL Thx a lot

Quote:
Originally Posted by bakunin
Will it be possible to merge your idea with this code?

Yes, of course:

Code:
for file in [0-9][0-9][0-9]-* ; do 
     if [ -f "${file#???-}" ] ; then
          print - "ERROR: file ${file#???-} already exists, leaving $file untouched"
     else
          mv "$file" "${file#???-}"
     fi
done

The code now cycles through the names of the original files (in each execution of the loop the variable "$file" holds one of these filenames), constructs the new name from it (the "${file##???-}"), tests if there is already a file named that way (the "if [ -f "${file##???-}" ]" means "if there is a file named whatever "${file##???-}" evaluates to) and prints an error message instead of copying it over with the second file.

You will have to manually rename the files left over this way.

I hope this helps.

bakunin
Hey Thx a lot. It worked as you said.

It left the 'same-filename' files untouched; then I renamed them accordingly. I was still afraid there would again be some kind of snafu with the 'same-filename' files but fortunately there wasn't.

You saved me hours of manual renaming Smilie Now backing all of it up before I lose everything.

Thx again
 
Login or Register to Ask a Question

Previous Thread | Next Thread

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

Rename mass files with text from first line

I have a few hundred text files that are currently numbered files. I would like to rename each one with the text from the first line in the file. I would prefer this is perl script rather than a one liner as it wil be after many alterations to the file via an existing script. Any help would be... (1 Reply)
Discussion started by: GWhizz
1 Replies

3. Programming

Minor editing of mass HTML files

Hello, I'm manipulating a batch of about 2,000 HTML files. I just need to make some small changes, but to all the files at once. For example, I want to delete the lines that have "embed_music" in all the files, or change all instances of the word "Paragraph" to "Absatz". This is my... (2 Replies)
Discussion started by: pxalpine
2 Replies

4. Shell Programming and Scripting

mass renaming files with complex filenames

Hi, I've got files with names like this : _Some_Name_178_HD_.mp4 _Some_Name_-_496_Vost_SD_(720x400_XviD_MP3).avi Goffytofansub_Some name 483_HD.avi And iam trying to rename it with a regular pattern. My gola is this : Ep 178.mp4 Ep 496.avi Ep 483.avi I've tried using sed with... (8 Replies)
Discussion started by: VLaw
8 Replies

5. Windows & DOS: Issues & Discussions

Windows mass copy files with same name in differnt folders

I have files existing with same names in the folders with date as display below c:\2010-09-10 <==== folder arr1.jpg arr2.jpg arr3.jpg arr4.jpg c:\2010-09-09 <==== folder arr1.jpg arr2.jpg c:\2010-09-08 <==== folder arr2.jpg arr3.jpg arr4.jpg ... (5 Replies)
Discussion started by: jville
5 Replies

6. Shell Programming and Scripting

bash script to rename in mass

Basically, I have a huge amount of files (ripped audiobooks) that all have the same garbage in their filenames. I'm wondering how to go about writing a bash script to mass rename them. Example filenames as they stand now: The First CD - 1x01 - Title 1.mp3 The First CD - 1x02 - Title 2.mp3... (4 Replies)
Discussion started by: audiophile
4 Replies

7. AIX

VI questions : mass changes, mass delete and external insert

Is it possible in VI to do a global change but take the search patterns and the replacement patterns from an external file ? I have cases where I can have 100,200 or 300+ global changes to do. All the new records are inside a file and I must VI a work file to change all of them. Also, can... (1 Reply)
Discussion started by: Browser_ice
1 Replies

8. Shell Programming and Scripting

Mass Change content in all files

Hi, Are there any sample scripts to change content like file paths, profile paths etc., from test version to production , instead of changing one by one, i would like to pass the in file (prod version/Test version) to convert to test or prod verions. any help is appreciated!! ~R (1 Reply)
Discussion started by: terala
1 Replies

9. UNIX for Dummies Questions & Answers

Mass Copy/rename

Don't tell me DOS can do something UNIX can't do! I want to copy a number of files from one directory to another, and at the same time change the names. The name changes would be common, e.g., all files starting with the letter 'L' and ending in '30.NEW554', with the copied or new files also... (6 Replies)
Discussion started by: lwilsonFG
6 Replies

10. UNIX for Dummies Questions & Answers

Easy way to mass rename files?

Hi. What is the easiest way to rename a bunch of files? For example taking all files ending in ".php3" and rename them to end in ".php" I could write a script to do this, but there is probably an easier way... Thanks! (17 Replies)
Discussion started by: Thermopylae
17 Replies
Login or Register to Ask a Question