How to change extension?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to change extension?
# 1  
Old 11-14-2002
Question How to change extension?

How do you write a shell script that change the extension of all the files?

e.g

chext rtf doc

where .rtf is the original extension
and .doc is the new extension

is it something to do with basename?
do I need a for loop?
Please help!

Unix SuperNewbie
# 2  
Old 11-14-2002
you will realize that making a search on these forums would give you more ideas... for exampe I searched for "rename files" and I got this link...

https://www.unix.com/unix-for-dummies-questions-and-answers/5769-easy-way-mass-rename-files.html?s=

I have just modified a small piece of code from the above link...

Quote:
for name in `ls *.rtf`
do
name1=`echo $name | sed -e 's/^\(.*\)\.rtf$/\1\.doc/g'`
mv $name $name1
done
Cheers!
Vishnu.
# 3  
Old 11-15-2002
I can get the script working as follows:

#!/bin/sh
for name in `ls *.rtf`
do
name1=` echo $name| cut -f 1 -d . `
mv $name1.rtf $name1.doc
done

is working fine, but how do I make it work like this:

chext 1 2

where 1 is the original extension and 2 is the desire new extension?
# 4  
Old 11-15-2002
replace those "rtf" and "doc" with $1 and $2 in your script...

I should add that the above way using "cut" will not work if you have multiple dots in your filename...

Code:
#!/bin/sh 
for name in `ls *.$1` 
do 
name1=`echo $name | sed -e "s/^\(.*\)\.$1$/\1\.$2/g"` 
mv $name $name1 
done

or a more compact and faster version which I prefer...

Code:
#!/bin/sh 
ls *.$1 | sed -e "s/^\(.*\)\.$1$/\1\.$1 \1\.$2/g" | xargs -n 2 mv -f

Cheers!
Vishnu.
# 5  
Old 11-16-2002
thanks vishnu!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change file extension

Hi Guys, i am trying to redirect a file wherein i need to change the extension of the file from .sh to .tmp, but getting an error a=test.txt sh test.txt > path/$(basename "$a" .sh).tmp i need test.tmp ---------- Post updated at 02:09 AM ---------- Previous update was at... (3 Replies)
Discussion started by: rohit_shinez
3 Replies

2. UNIX for Dummies Questions & Answers

Display the .csv extension files based on .done extension fine

Hi All, I want to fetch the files based on .done file and display the .csv files and Wil take .csv files for processing. 1.I need to display the .done files from the directory. 2.next i need to search for the .Csv files based on .done file.then move .csv files for the one directory ... (2 Replies)
Discussion started by: girija.g6
2 Replies

3. Shell Programming and Scripting

shell script to change the extension of a file

I have a directory that contains several files, out of which some files are have an extra extension for example file1.new.new.new file2.new.new.new file3.new.new.new file4.new.new.new i want to write a shell script that rename all such file with only single extension like file1.new... (7 Replies)
Discussion started by: mukulverma2408
7 Replies

4. Shell Programming and Scripting

change filenames but not extension

I have a filename with a bunch of periods that I want to replace with underscores, but I don't want to change the extension. Ex: I want file.test1.f-1.fig.eps to be file_test1_f-1_fig.eps Using awk, the following line will replace ALL periods with underscores, but I want to leave the... (2 Replies)
Discussion started by: erinbot
2 Replies

5. UNIX for Dummies Questions & Answers

copy all files matching the request and change the extension at the same time

Hi everyone When I'm starting my script I'm giving to it two parameters: script.sh ext1 ext2 I need to copy all files in a directory fitting ext1, to the same folder, with the same names, but with the changed extension to ext2. Till now I've just managed to do it for only 1 file, but I... (16 Replies)
Discussion started by: vacuity93
16 Replies

6. Homework & Coursework Questions

how to change this looking for mimetype "text/plain" instead of extension *.txt?

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Create a Shell script that looks for all text files in your home directory (including subdirectories). List... (3 Replies)
Discussion started by: rollinator
3 Replies

7. UNIX for Dummies Questions & Answers

Shell script to rename or change file extension case.

I searched the forum, but there was different type of rename. Hello. I have files in folder. Like: xxxxxxxx1.html or xxxxxxxx2.txt or xxxxxxxx3.tar.gz and how to rename or change file extension case to xxxxxxxx1.htm or xxxxxxx2.TXT or (5 Replies)
Discussion started by: Sheldon
5 Replies

8. Homework & Coursework Questions

Create file and then change the extension case.

Interpreter should be bash. 1. The problem statement, all variables and given/known data: I need to make a file (myText.txt or song.mp3 or cloud.tar.gz or whatever) and then change the extension to (myText.TXT , song.MP3, cloud.TAR.GZ). It would be good if I can add all information in... (4 Replies)
Discussion started by: Kdenmen
4 Replies

9. Shell Programming and Scripting

change file extension from root and subdirectories

Hello, my first post! I'd appreciate help with this script, I'm new to this. I have a media directory where I want to batch convert image file names from .img to .iso. I've tried but get: $ ./img2iso2.sh ./img2iso2.sh: line 13: syntax error: unexpected end of file :( This is my... (10 Replies)
Discussion started by: Astrid
10 Replies

10. Shell Programming and Scripting

how do i change extension

Hi I am writing a script which does an FTP of a set of files onto another machine and then would have to rename the files into a different extension on the source machine. for example if the file being sent via FTP is sample.txt. Once the file has been transferred i would want to modify the... (2 Replies)
Discussion started by: kswaraj
2 Replies
Login or Register to Ask a Question