Rename files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rename files
# 1  
Old 05-30-2010
Rename files

Hi,

I am new to Unix and i have a requirement where i need to write a shell script where i have to loop through various files present in a directory and rename them based on below criteria.

Files in the folder are in the following format. [S*_V[0-9]_YYYYMMDD.dat]

SDL_V1_20100530.dat
SDP_V0_20100530.dat

etc.

we need to remove date part from the file names and final result should be the one like below.

SDL_V1.dat
SDP_V0.dat

Can you please help me in achieving that.

Thanks
# 2  
Old 05-30-2010
Assuming you are in that folder and it only contains files which should be renamed, you could try something like following directly from the shell.
Of course you could write this in your shell script, in this case be sure that you have a proper shebang in the first line, eg #!/bin/sh
Code:
for i in *.dat; do
j=$(echo $i | sed 's/_[0-9]\{8\}//')
mv $i $j
done

I strongly recommend to copy your original files in a temporary directory, before you run the for loop from above, just for the case that you are not satisfied with it's output.
The sed command simply cuts an underline followed by 9 digits.

Last edited by pseudocoder; 05-30-2010 at 12:51 AM..
# 3  
Old 05-30-2010
Quote:
Originally Posted by thegeek
you can use the rename command: How To Rename Multiple Files Together in Linux Using 3 Methods (link removed)

I checked that link and I wonder how that approach in concrete terms would look like Smilie
# 4  
Old 05-30-2010
another way (checking for 2 underlines to avoid renaming renamed files)
Code:
for F in *_*_*.dat
do mv -v $F ${F%_*}.dat
done

# 5  
Old 05-30-2010
Quote:
Originally Posted by frans
another way (checking for 2 underlines to avoid renaming renamed files)
Code:
for F in *_*_*.dat
do mv -v $F ${F%_*}.dat
done

There is no need to worry about renamed files in the for list; the sh expands the glob to generate the list before the loop body begins to execute. Still, a nice, simple, efficient solution, using parameter expansion to generate the new name.

Regards,
Alister
# 6  
Old 05-30-2010
Quote:
Originally Posted by alister
There is no need to worry about renamed files in the for list.
It was just in case of calling the script twice (what happened to me while testing Smilie)
# 7  
Old 05-30-2010
Ah. heheh. Apologies for my misunderstandig. Smilie
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

Script to unzip files and Rename the Output-files

Hi all, I have a many folders with zipped files in them. The zipped files are txt files from different folders. The txt files have the same names. If i try to find . -type f -name "*.zip" -exec cp -R {} /myhome/ZIP \; it fails since the ZIP files from different folders have the same names and... (2 Replies)
Discussion started by: pmkenya
2 Replies

3. UNIX for Dummies Questions & Answers

Rename all .sh files to .pl

I have various .sh and .pl files in one directory. I want to rename all the .sh files to .pl i.e testscript.sh --> testscript.pl I am trying to use mv *.sh *.pl It doesnt work though!! (3 Replies)
Discussion started by: chrisjones
3 Replies

4. Shell Programming and Scripting

How to rename files

Hi Guys, I have to rename about 180 files in different folders in linux. For example, abc_110117.txt eff_110117.txt zzz_110117.txt After renaming the files, these files should like like abc.txt eff.txt zzz.txt I created a small script to rename the files like ls... (2 Replies)
Discussion started by: naveed
2 Replies

5. Shell Programming and Scripting

rename files Ax based on strings found in files Bx

Hi, I'm not very experienced in shell scripting and that's probably why I came across the following problem: I do have several hundred pairs of text files (PF00x.spl and PF00x.shd) where the first file (PF00x.spl) needs to be renamed according a string that is included in the second file... (12 Replies)
Discussion started by: inCH
12 Replies

6. Shell Programming and Scripting

Rename files

Hi, I wanna rename bunch of files which has ":" to -. ie. rename file named file1:file1 to file1-file1. any ideas? (2 Replies)
Discussion started by: linuxaddict7
2 Replies

7. Shell Programming and Scripting

Rename many files

Hi all I have files in the following format: 01_anote1.pdf 01_bnote1.pdf 01_control1.pdf 01_ethics1.pdf 01_invoice1.pdf 01_invoice_21.pdf 20_quote_l1.pdf I need to rename them to 01_anote.pdf 01_bnote.pdf 01_control.pdf 01_ethics.pdf 01_invoice.pdf (9 Replies)
Discussion started by: lmatlebyane
9 Replies

8. Shell Programming and Scripting

Rename files

Hello, I've a list of file like this img_001 img_22 img_44 and I would rename all with this form photo_0001 photo_0002 photo_0003 photo_0004 suggestions?Thanks to all. (2 Replies)
Discussion started by: cv313x
2 Replies

9. UNIX for Dummies Questions & Answers

rename files help

Hi, I've already search for this issue but I found different scripts for rename files, but I don't know how to customize it for my needs. Here's what I want to do: I have a lot of files inside many directories, like this: /aa/01.txt /aa/02.txt /ab/01.txt /ab/02.txt I want all those files... (2 Replies)
Discussion started by: piltrafa
2 Replies

10. Shell Programming and Scripting

rename files

hey all, I have files in the format of ABCD20061101 and ABCDEF20061101 in one directory, I would like to change all ABCD20061101 to ABCDEF20061101 and the problem is if I do a simple pattern match of ABCD, then those ABCDEF20061101 would also... (2 Replies)
Discussion started by: mpang_
2 Replies
Login or Register to Ask a Question