renaming file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting renaming file
# 1  
Old 09-30-2008
renaming file

Dear Friends,
Need your help once again.

I have this file name

e.g.1) report_12.rp_1
e.g.2) remark_mm.rmr_3


I want it to be renamed as

report_12_1.rp
remark_mm_3.rmr
# 2  
Old 09-30-2008
If you have the file name in $filename you can do the following.

Code:
head1=${filename%_[0-9]}
tail=${filename#$head1}
head2=${head1%.*}
ext=${head1#$head2}
mv "$filename" "${head2%$ext}$tail$ext"

This assumes the final suffix is a single digit. The construct ${var#pat} means the value of $var with any match on the pattern pat removed from the beginning; ${var%pat} does the corresponding substitution on the end of the value. See the manual page for your shell for more information.
# 3  
Old 09-30-2008
With sed:

Code:
sed 's/\(.*\)\(\..*\)\(_.*\)/\1\3\2/'

For example:

Code:
echo report_12.rp_1 | sed 's/\(.*\)\(\..*\)\(_.*\)/mv & \1\3\2/' | sh

Regards

Last edited by Franklin52; 09-30-2008 at 05:03 AM.. Reason: adding example
# 4  
Old 09-30-2008
if you have Python , you can download this script.
example usage for same file name structure:
Code:
# ls -1 re*
remark_mm.rmr_19
remark_mm.rmr_3
report_12.rp_1

# filerenamer.py -p "(.*_.*)(\..*)(_.*)$" -e "\\1\\3\\2" -l "re*_*"  #remove -l to commit
==>>>>  [ /home/remark_mm.rmr_3 ]==>[ /home/remark_mm_3.rmr ]
==>>>>  [ /home/remark_mm.rmr_19 ]==>[ /home/remark_mm_19.rmr ]
==>>>>  [ /home/report_12.rp_1 ]==>[ /home/report_12_1.rp ]

# ls -1 re*
remark_mm_19.rmr
remark_mm_3.rmr
report_12_1.rp

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Renaming file and check for the renamed file existence

Hi Am trying to move a file from one name to another When I do "ls" to check for the moved filename I can see the file but when I try the same with a script am unable.. I think am doing some pretty silly error.. please help.. toMove=`ls | grep -E "partition.+"` mv $toMove partition._org... (7 Replies)
Discussion started by: Priya Amaresh
7 Replies

2. UNIX for Dummies Questions & Answers

Renaming File

Hi there, I have 350 files in this directory: /home/adams/29 that was mistakenly renamed in this format: TTFILE_BIT_638478.txt.dat I want to take out the trailing .dat so that it ends in .txt: TTFILE_BIT_638478.txt I need help please. Thank you. (6 Replies)
Discussion started by: Creems
6 Replies

3. UNIX for Dummies Questions & Answers

Need help with Renaming a file

I have a file named as Pro_PatAct_MMDDYYYY.csv. I need to renmae it to this Pro_PatAct.csv without the date timestamp. Can someone help me to achieve this using a regular expn. (3 Replies)
Discussion started by: imran_affu
3 Replies

4. Shell Programming and Scripting

Renaming file

Hello, I have an outstanding issue..Iam on linux and using a putty to connect to my server and then fire our unix shell script. At location /usr/sam a file called "er 1 32.txt" out boss transfer via application. From my end on terminal when i want to transfer this file to some other location... (2 Replies)
Discussion started by: j_panky
2 Replies

5. Shell Programming and Scripting

File renaming from list of names contained in another file

I have to rename a large number of files so that the name of each file corresponds to a code number that is given side by side in a list (textfile). The list contains in column A the filename of the actual files to be renamed and in column B the name (a client code, 9 digits) that has to be... (7 Replies)
Discussion started by: netfreighter
7 Replies

6. Shell Programming and Scripting

Renaming a file use another file as a sequence calling a shl

have this shl that will FTP a file from the a directory in windows to UNIX, It get the name of the file stored in this variable $UpLoadFileName then put in the local directory LocalDir="${MPATH}/xxxxx/dat_files" that part seems to be working, but then I need to take that file and rename, I am using... (3 Replies)
Discussion started by: rechever
3 Replies

7. Shell Programming and Scripting

Renaming a file

I am a complete Unix newbie and I need some help! (Please...) I need to rename a file from the following format: Test_Test_EAR_1234.ear To the following: Test_Test_EAR.ear In other words, I need to remove everything after & including the final underscore up to the "." What is the best... (6 Replies)
Discussion started by: VeloLisa
6 Replies

8. UNIX for Dummies Questions & Answers

Help in renaming file !!!

Hi All, I want to rename a file inside a script which has a date portion appended at the start of the file name. The script i wrote works fine when the file comes on a day to day basis but sometimes it comes late too. #!/usr/bin/ksh cd /space/file/source dt=$(date "date "+%m%d%Y")... (5 Replies)
Discussion started by: kumarsaravana_s
5 Replies

9. Shell Programming and Scripting

Renaming a file name

I have an audit log that is produced each day from a production printer. It names the file using todays date, but it removes the leading zero's. For example: todays date 060104 names the file 6104.txt. I ftp this file onto a Sun box and pull stats off of it. To keep some consistency to what I am... (2 Replies)
Discussion started by: dbrundrett
2 Replies

10. UNIX for Dummies Questions & Answers

Renaming a file to the same name

Hi All, I was wondering if anyone knows how i take in a file, format the file, and then rename the file as the same name as the input file in shell script. Here is an example of what I am doing: if ] then echo "please enter a filename" else export infile=$1 I take in a file... (3 Replies)
Discussion started by: lachino8
3 Replies
Login or Register to Ask a Question