Changing file names


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Changing file names
# 1  
Old 01-30-2011
Changing file names

I have lot of files whose names are something like the following. I want to change the name of all the files from 'npt02' to 'n02'.

Code:
npt02-z30-sr65-rgdt0p50-dc0p01-16x12drw.tpf
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.back
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw-bst-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.cmod
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.expl
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.log
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.ps
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw-rms-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p01-8x6drw.tpf
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.back
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw-bst-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.cmod
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.expl
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.log
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.ps
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw-rms-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p03-8x6drw.tpf
npt02-z30-sr65-rgdt0p50-dc0p05-4x3smp.cmod
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.back
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw-bst-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.cmod
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.expl
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.log
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.ps
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw-rms-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p05-8x6drw.tpf
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.back
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw-bst-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.cmod
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.expl
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.log
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw-mis.ps
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.ps
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw-rms-mis.xy
npt02-z30-sr65-rgdt0p50-dc0p08-4x3drw.tpf

# 2  
Old 01-30-2011
Try:
Code:
for i in npt02*; do
  mv "$i" "n${i#npt}" 
done

# 3  
Old 01-30-2011
Another way, which should work for large numbers of files and also for filenames containing space characters:

Code:
ls npt02* | while read old_filename
do
        new_filename="echo "${filename}|sed -e "s/npt02/n02/g"
        mv "${old_filename}" "${new_filename}"
done


Last edited by methyl; 01-30-2011 at 03:56 PM.. Reason: many typos
# 4  
Old 01-30-2011
Actually the "for i in.." construct works for large numbers of files and also for file names containing space characters...
# 5  
Old 01-30-2011
This will be in csh I would think, right?

Quote:
Originally Posted by Scrutinizer
Try:
Code:
for i in npt02*; do
  mv "$i" "n${i#npt}" 
done

Bourne shell I think

---------- Post updated at 06:21 PM ---------- Previous update was at 05:37 PM ----------

I am trying something like this at the moment. Want to pass findptn and replace it with replaceptn, but something is not working.

Code:
  foreach f ( * )
    echo $f `echo $f | awk -v findptn=$find -v replaceptn=$replace  /
                           '{sub(/findptn/,"replaceptn")}; 1'`
  end


Last edited by kristinu; 01-30-2011 at 07:10 PM..
# 6  
Old 01-31-2011
Oops. If your "foreach" works you are actually running "C Shell" (csh) which is a quite different syntax from Bourne-type Shells such as "sh", "ksh", "bash" etc. .
On re-reading your last post I think that this is what you meant!

There is no real use for "csh" in unix/Linux Systems Administration. All system-supplied scripts will be written in a Bourne-type Shell relevant to the Operating System.

Sorry, cannot help is it is a detailed "csh" question.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing file names

sac_pzs_iv_epoz_hhe__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_epoz_hhn__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_epoz_hhz__2013.074.14.40.46.0000_2599.365.23.59.59.99999 sac_pzs_iv_haga_hhe__2006.111.00.00.00.0000_2599.365.23.59.59.99999... (3 Replies)
Discussion started by: kristinu
3 Replies

2. Debian

Changing file extension names

Hi I have a list of files :root@L28mustang:/var/log/exim4/2017/Jul2017_Blast_BC07# ls -lrt | grep mainlog -rw-r----- 1 Debian-exim adm 3636932 Jul 8 06:25 mainlog.3.gz -rw-r----- 1 Debian-exim adm 919512 Jul 9 06:27 mainlog.2.gz -rw-r----- 1 Debian-exim adm 7655054 Jul 10 06:25 mainlog.1... (1 Reply)
Discussion started by: anaigini45
1 Replies

3. UNIX for Dummies Questions & Answers

Bulk changing of file names using Terminal in OS X

I want to change the name of several files within a folders (directory) and subdirectories in OS X. If I only wanted to change file names within the directory I guess I would use: rm photo*.jpg picture*.jpg I have lots of subdirectories, is there a way of getting the file changes for all... (5 Replies)
Discussion started by: ademanuele
5 Replies

4. Shell Programming and Scripting

Changing file names

I have a series of files as follows file-1.pdf file-2.pdf file-3.pdf file-4.pdf file-5.pdf file-6.pdf file-7.pdf I want to have the file names with odd numbers starting from an initial number, for example 2000. The result would be the following: file-2001.pdf file-2003.pdf... (9 Replies)
Discussion started by: kristinu
9 Replies

5. Shell Programming and Scripting

Changing file names

I have file names as shown and want to change the name to have only the first four numbers. /home/chrisd/Desktop/nips/nips_2013/5212-learning-feature-selection-dependencies-in-multi-task-learning.pdf /home/chrisd/Desktop/nips/nips_2013/5213-parametric-task-learning.pdf... (3 Replies)
Discussion started by: kristinu
3 Replies

6. Shell Programming and Scripting

[SOLVED] Changing file names

I have written a csh script that changes the name of file from src to dst. I am getting the error below: TESTAmvfiles DONE TESTAmvfiles set: Variable name must begin with a letter. The csh script is: #!/bin/csh #... (0 Replies)
Discussion started by: kristinu
0 Replies

7. Shell Programming and Scripting

Changing names

I have file names m04-npt06-z30-syn.ps m04-npt06-dp018-8x6smp.vmod m04-npt06-sr40-syn-dp01-16x12drw.params m04-npt06-sr40-syn-dp008-16x12drw.params m04-npt06-sr40-syn-dp008-16x12drw.vmod m04-npt06-sr40-syn-dp008-16x12drw.bck m04-npt06-sr40-syn-dp008-16x12drw.exp... (6 Replies)
Discussion started by: kristinu
6 Replies

8. Shell Programming and Scripting

Changing file names with AWK

Dear All, I have some thousands of files in a folder and i need to change those file names without opening the file (no need to change anything in the file content, need to change the file name only). The filenames are as follows: Myfile_name.1_parameter Myfile_name.2_parameter... (6 Replies)
Discussion started by: Fredrick
6 Replies

9. UNIX for Dummies Questions & Answers

Moving files and changing names

i have many files with extention filename.ASN_ERROR~ at a path. I want to move these files to another path and change extension to .ASN There are more then 80,000 files so i cant use manual commands muneebr (5 Replies)
Discussion started by: muneebr
5 Replies

10. Shell Programming and Scripting

changing file names to lowercase

hey guys having some trouble figuring this out. my program is supposed to take a name of a directory as a command line argument and change the filenames inside that directory to lowercase. what i dont get is how you access that directory and go thru all the files and change the filenames... (1 Reply)
Discussion started by: 30177005
1 Replies
Login or Register to Ask a Question