Rename multiple files in one go


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rename multiple files in one go
# 1  
Old 05-03-2018
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, ....)

Code:
$ 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 query1-extract_ab
-rw-rw-r-- 1 reportusr reportusr  30M May  3 11:25 query1-extract_ac
-rw-rw-r-- 1 reportusr reportusr  30M May  3 11:25 query1-extract_ad
-rw-rw-r-- 1 reportusr reportusr  30M May  3 11:25 query1-extract_ae
-rw-rw-r-- 1 reportusr reportusr  30M May  3 11:25 query1-extract_af
-rw-rw-r-- 1 reportusr reportusr  30M May  3 11:25 query1-extract_ag
-rw-rw-r-- 1 reportusr reportusr  22M May  3 11:25 query1-extract_ah

I want to append .txt to the end of these filenames , so that
Code:
query1-extract_aa will be renamed to query1-extract_aa.txt
query1-extract_ab will be renamed to query1-extract_ab.txt
query1-extract_ac will be renamed to query1-extract_ac.txt
    .
    .
    .
etc...

How can I do this in bash in one go ?
# 2  
Old 05-03-2018
You can't.
In bash you'll need a loop to rename every single file.
You may want to consider the (perl?) rename tool.
This User Gave Thanks to RudiC For This Post:
# 3  
Old 05-03-2018
My for loop (shown below) deleted all the files instead of renaming it Smilie

Any idea how I can do this correctly using a for loop (or any loop) ?
And how did my files get removed with the below mv command ?

Code:
$ ls -l
total 235680
-rw-rw-r-- 1 reportusr reportusr 31259250 May  3 11:25 query1-extract_aa
-rw-rw-r-- 1 reportusr reportusr 31198180 May  3 11:25 query1-extract_ab
-rw-rw-r-- 1 reportusr reportusr 31264556 May  3 11:25 query1-extract_ac
-rw-rw-r-- 1 reportusr reportusr 31246721 May  3 11:25 query1-extract_ad
-rw-rw-r-- 1 reportusr reportusr 31215875 May  3 11:25 query1-extract_ae
-rw-rw-r-- 1 reportusr reportusr 31172285 May  3 11:25 query1-extract_af
-rw-rw-r-- 1 reportusr reportusr 31189621 May  3 11:25 query1-extract_ag
-rw-rw-r-- 1 reportusr reportusr 22774687 May  3 11:25 query1-extract_ah
$
$
$ for i in query1-extract* ; do mv $i ${1}.txt; done
$ ls -lh
total 0
$

# 4  
Old 05-03-2018
Quote:
Originally Posted by kraljic
My for loop (shown below) deleted all the files instead of renaming it Smilie

Any idea how I can do this correctly using a for loop (or any loop) ?
And how did my files get removed with the below mv command ?

Code:
$
$ for i in query1-extract* ; do mv $i ${i}.txt; done
$ ls -lh
total 0
$

You used ${1} instead of ${i}

Andrew
This User Gave Thanks to apmcd47 For This Post:
# 5  
Old 05-03-2018
This is why you always do 'echo mv' on the first try. Better yet, take a backup before you do a batch rename. Consequences can be large.
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 05-03-2018
after the first for...mv run when all files disappeared there should be a file in the directory called .txt (since $1 was not set) which is a copy of the last file on the list (query1-extract_ah). ls -al should show it.
This User Gave Thanks to rdrtx1 For This Post:
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 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

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

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

5. Shell Programming and Scripting

Rename multiple files

hello: I have multiple files with names like: somestring_y2010m01d01 somestring_y2010m01d02 .......... somestring_y2010m12d31 How... (4 Replies)
Discussion started by: sylcam
4 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