Rename multiple files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rename multiple files
# 1  
Old 08-16-2011
Rename multiple files

hello:

I have multiple files with names like: somestring_y2010m01d01
somestring_y2010m01d02
..........
somestring_y2010m12d31

How can I rename change the last part (y2010m##d##) for a sequentially number considering different step. by example if step =2 then

somestring_y2010m01d01 --> somestring_001
somestring_y2010m01d03 --> somestring_002
somestring_y2010m01d05 --> somestring_003
.....................

Thanks in advance

Syl
# 2  
Old 08-16-2011
Assuming you do not have spaces in the names of your files:
Code:
ls | awk -vSTEP=2 '                                                          
NR % STEP { print "echo mv " $0  " something_" sprintf("%03d", ++count)} ' | 
sh

If the result looks right, remove 'echo'.
This User Gave Thanks to yazu For This Post:
# 3  
Old 08-16-2011
Quote:
Originally Posted by yazu
Assuming you do not have spaces in the names of your files:

If you quote your variables, it doesn't matter whether there are spaces in the name or not.

There is no need for ls. In fact, in many cases, it will cause problems when there are spaces in the filenames.
Code:
n=1
for f in somestring_*
do
  num=$( printf "%03d" "$n" )
  n=$(( $n + 1 ))
  nf=somestring_$num
  mv "$f" "$nf"
done

This User Gave Thanks to cfajohnson For This Post:
# 4  
Old 08-16-2011
You forgot about skipping files. And there is nothing wrong in using ls as a generator in a pipe (of course find . -type f is safer but not because of spaces). I said about spaces just because I was lazy to write "\"" $0 "\"".

PS And there is a bug in my awk code (I belive I should use ! (NR % STEP)). But the OP is silent... Smilie

Last edited by yazu; 08-16-2011 at 02:40 AM..
# 5  
Old 08-16-2011
Hello:

Just to say thanks to both of you, I found useful yor suggestion, I really appreciate your help.

Regards

Syl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Rename multiple files in one go

OS : Oracle Linux 6.8 shell : bash As shown below, I have multiple files like below (query1-extract_aa, query1-extract_ab, query1-extract_ac, ....) $ ls -l total 235680 -rw-rw-r-- 1 reportusr reportusr 30M May 3 11:25 query1-extract_aa -rw-rw-r-- 1 reportusr reportusr 30M May 3 11:25... (5 Replies)
Discussion started by: kraljic
5 Replies

2. 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

3. Shell Programming and Scripting

Rename a multiple files

I have multiple files in folder which i want to rename. hence I am using the below command in my script by I get an error: export XXX_LOG_DIR="${LOG_DIR}/${XXX_HOST}/xxx/${REPORT_DATE}" mv $XXX_LOG_DIR/*.audit.gz $XXX_LOG_DIR/*.audit.log.gz But I get the below error: mv: target... (5 Replies)
Discussion started by: karan8810
5 Replies

4. Shell Programming and Scripting

How to rename multiple files at one go?

Hi, I have hundreds of files with XXX in their file name and I want to rename all of them with YYY in place of XXX. for ex: $ ls -1 123XXX789 345XXX678 Output $ ls -1 123YYY789 345YYY678 I know we can loop in each file and sed to replace and rename each file but ren *XXX* *YYY*... (4 Replies)
Discussion started by: reddyr
4 Replies

5. Shell Programming and Scripting

Rename multiple files

Hi, In my directory I have many files, for e.g. file_123 file_124 file_125 file_126 file_127 Instead of renaming these files one by one, I would like to rename them at a same time using same command... they should appear like 123 124 125 126 127 What command(awk or ls or... (3 Replies)
Discussion started by: juzz4fun
3 Replies

6. UNIX for Dummies Questions & Answers

help with multiple files rename...

Hi everyone, I'm very green in Linux. Please help me to solve my problem. I have thousands of files and I want to change their names. They have naming convection: prefix_date_date+1_suffix.nc prefix: ext-GLORY date_date+1: 20020101_20020102 and two types of suffix: gridV_R20020130 and... (3 Replies)
Discussion started by: makikicindy
3 Replies

7. UNIX for Dummies Questions & Answers

How to rename multiple files

Hi all, I have some files like: pickup.0000043200.t001.t001.data pickup.0000043200.t001.t002.data pickup.0000043200.t002.t001.data pickup.0000043200.t002.t002.data pickup.0000043200.t003.t001.data pickup.0000043200.t003.t002.data I need to rename these files to ... (4 Replies)
Discussion started by: a_dor8
4 Replies

8. Shell Programming and Scripting

now to rename multiple files

I have several hundred files in one directory which I need to move to another directory with the new extension, for example: /bb/data/rptmgr* are in the source directory need to be moved to /bb/data55/rptmgr*.new Is there an efficient way to do it? Thanks -A (4 Replies)
Discussion started by: aoussenko
4 Replies

9. Shell Programming and Scripting

rename multiple files

Hi, can anyone have a ksh script to rename multiple files (ie to remove .Z extension of the files) can someone correct this? for i in *.Z do var1 = substr($i, 1,at(".Z",$i)-1) mv $i $var1 done Thanks.. Antony (13 Replies)
Discussion started by: antointoronto
13 Replies

10. UNIX for Dummies Questions & Answers

Rename multiple files

Hello, I want to rename multiple files at a time and I don't know how to do it. I have various ".mp3" files, like "band name - music name.mp3" and I want to remove the "band name" from all files. Anybody knows how to do it using shell script or sed or even perl? Thanks (7 Replies)
Discussion started by: luiz_fer10
7 Replies
Login or Register to Ask a Question