Help with renaming the files.


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help with renaming the files.
# 1  
Old 07-28-2014
Help with renaming the files.

Hi,

I have 31 file as below....
Code:
dt_ref_med_merged_madt_h_19980101.nc 
..
..
dt_ref_med_merged_madt_h_19980131.nc

I want to rename it like...
Code:
dt_ref_med_merged_madt_h_1998_1.nc
..
..
dt_ref_med_merged_madt_h_1998_31.nc


How can I do it ? any suggestions ? I want to do it small shell script.

Thanks.

Last edited by rbatte1; 07-29-2014 at 10:07 AM.. Reason: Added CODE tags
# 2  
Old 07-28-2014
Please use code tags.

From the directory do:
Code:
for file in *
do
    mv $file $(echo $file | sed 's/01\([0-9][0-9]\)/_\1/')
done

# 3  
Old 07-28-2014
Thanks for the help.
But it is working good for first 1 to 9 files. Files from 10 onwards are not renamed.
I am getting the following messages.
Code:
mv: `dt_ref_med_merged_madt_h_19980110.nc' and `dt_ref_med_merged_madt_h_19980110.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980120.nc' and `dt_ref_med_merged_madt_h_19980120.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980121.nc' and `dt_ref_med_merged_madt_h_19980121.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980122.nc' and `dt_ref_med_merged_madt_h_19980122.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980123.nc' and `dt_ref_med_merged_madt_h_19980123.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980124.nc' and `dt_ref_med_merged_madt_h_19980124.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980125.nc' and `dt_ref_med_merged_madt_h_19980125.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980126.nc' and `dt_ref_med_merged_madt_h_19980126.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980127.nc' and `dt_ref_med_merged_madt_h_19980127.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980128.nc' and `dt_ref_med_merged_madt_h_19980128.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980129.nc' and `dt_ref_med_merged_madt_h_19980129.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980130.nc' and `dt_ref_med_merged_madt_h_19980130.nc' are the same file
mv: `dt_ref_med_merged_madt_h_19980131.nc' and `dt_ref_med_merged_madt_h_19980131.nc' are the same file

can you please tell how to fix it ?

Thanks.

Last edited by Franklin52; 07-28-2014 at 08:14 AM.. Reason: Please use code tags
# 4  
Old 07-28-2014
Are you sure you used the correct code. It is working for me:
Code:
# ll
total 0
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_19980110.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_19980111.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_19980120.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_19980121.nc
# for file in *
> do
>       mv $file $(echo $file | sed 's/01\([0-9][0-9]\)/_\1/')
> done
# ll
total 0
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_1998_10.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_1998_11.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_1998_20.nc
-rw-r--r--   1 root       sys              0 Jul 28 05:08 dt_ref_med_merged_madt_h_1998_21.nc

# 5  
Old 07-28-2014
Hi,
Now it is working fine.

i use

Code:
mv $file $(echo $file | sed 's/01\([01][1-9]\)/_\1/')

instead of
Code:
mv $file $(echo $file | sed 's/01\([0-9][0-9]\)/_\1/')

Thanks.

Last edited by Franklin52; 07-28-2014 at 08:15 AM.. Reason: Please use code tags
This User Gave Thanks to mahesh shinde For This Post:
# 6  
Old 07-28-2014
Try this using shell's parameter expansion only:
Code:
for file in *.nc; do echo mv $file   ${file/199801[0-9][0-9]/1998_$((0+${file:31:2}))}; done
mv dt_ref_med_merged_madt_h_19980101.nc dt_ref_med_merged_madt_h_1998_1.nc
mv dt_ref_med_merged_madt_h_19980110.nc dt_ref_med_merged_madt_h_1998_10.nc

This User Gave Thanks to RudiC 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

Renaming multiple files in sftp server in a get files script

Hi, In sftp script to get files, I have to rename all the files which I am picking. Rename command does not work here. Is there any way to do this? I am using #!/bin/ksh For eg: sftp user@host <<EOF cd /path get *.txt rename *.txt *.txt.done ... (7 Replies)
Discussion started by: jhilmil
7 Replies

2. Shell Programming and Scripting

Renaming files

Hello, I am looking for a command line that will rename name files : f700_abc_o_t_MASTERID_AS_AE_20130323.csv like this f700_abc_o_t_MASTERID_AS_AE_20130324.csv The great idea could be to get the date stamp 20130323 and change any part of it, instead of just change the... (4 Replies)
Discussion started by: Aswex
4 Replies

3. Shell Programming and Scripting

renaming files

Hi, I have a list of files in a folder with the same name ending (over 1000 files) joe.jpy.jpeg joe1.jpy.jpeg joe2.jpy.jpeg jon3.jpy.jpeg jor5.jpy.jpeg .....jpy.jpeg etc. I want to change jpy to hhk So the output will be: joe.hhk.jpeg joe1.hhk.jpeg joe2.hhk.jpeg jon3.hhk.jpeg... (3 Replies)
Discussion started by: kylle345
3 Replies

4. Shell Programming and Scripting

renaming files or adding a name in the beginning of all files in a folder

Hi All I have a folder that contains hundreds of file with a names 3.msa 4.msa 21.msa 6.msa 345.msa 456.msa 98.msa ... ... ... I need rename each of this file by adding "core_" in the begiining of each file such as core_3.msa core_4.msa core_21.msa (4 Replies)
Discussion started by: Lucky Ali
4 Replies

5. Shell Programming and Scripting

renaming files

Hi all, using a utility image file was named starting with blank space and a blank space in between. I want to rename the files. file names are in the format " sb 12.tif"," sb 13.tif"," sb 14.tif" the files are in thousands. i want to rename as 12.tif, 13.tif, 14.tif.... thanks. (3 Replies)
Discussion started by: ahkverma
3 Replies

6. UNIX for Dummies Questions & Answers

renaming files

I have a list of files named ab_*.csv I would like to remane them all by removing the ab_ and have *.csv I did the following but I am surely missing something. /* wrong script */ for i in `ls -1 ab_*`; do mv ab_$i $i; done Thanks in advance. (1 Reply)
Discussion started by: jxh461
1 Replies

7. UNIX for Dummies Questions & Answers

Renaming files

Hello! I am not familiar with UNIX and I have this problem: I need to move files from a UNIX machine to a PC. UNIX file names contain ":" as special character which is not recognized in a PC. How can I change ":" for "_" in the name of a bunch of files in UNIX? Thanks for your help. (7 Replies)
Discussion started by: Tygoon
7 Replies

8. UNIX for Dummies Questions & Answers

renaming files

directory name = /usr/tom/1997 files - ABC_1997_ST1_BCD.SQL BCD_1997_ST1_EFG_SAB.SQL TTT_EBC_1997_ST1_A.SQL sub directory - /usr/tom/1997/jan a) I want to just rename the all files ending with '.SQL' and also its contents in the 1997 directory(excluding subdirectories eg... (3 Replies)
Discussion started by: systemsb
3 Replies

9. UNIX for Dummies Questions & Answers

renaming the files

Hi All, Today I got a small problem while handling zipped files in PROD support. There are files in this format and I had to grep them reading some contents A.B.gz.C.D where A,B,C and D stand for variables (like FIRST.NAME.gz.MIDDLE.LAST). I know that these files are zipped files and If I... (1 Reply)
Discussion started by: adurga
1 Replies

10. UNIX for Dummies Questions & Answers

renaming files

i have a set of *.lst files. now i want to change the names from "lst" to "dat". how to do it? ex.: -rw-r--r-- 1 rram group 22 Sep 21 13:10 a.lst -rw-r--r-- 1 rram group 22 Sep 21 13:09 b.lst -rw-r--r-- 1 rram group 22 Sep 21 13:10 c.lst... (4 Replies)
Discussion started by: raguramtgr
4 Replies
Login or Register to Ask a Question