Shell Script to rename files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Script to rename files
# 1  
Old 03-21-2009
Bug Shell Script to rename files

Hi, i need a bit of help writting a tcsh script which renames all ascii text files in the current directory by adding a number to their names before the extension

so for example, a directory containing the files


Hello.txt
Hello.t
Hello

should have the following changes,

Hello.txt should be converted to Hello_a1.txt
Hello.t should be converted to Hello_a2.t
Hello should be converted to Hello_a3

so it should put a _a and a number incrementing accordingly.
*********************************************************

Im new to tcsh scripting, though i tried implementing it, and this is where i get to.


#!/bin/tcsh
set n = 1

foreach f ( * )
echo file $f == ascii
if ( $? == 0 ) then
mv "$f:r" "$f:r"_a$n
@ n += 1
endif
end
echo $n changed

I am aware that some parts are incorrect, and that I might be missing something, thats where i need help.

thanks.
# 2  
Old 03-21-2009
You know you should not use (t)csh for scripting Smilie

But if you insist you may try this:

Code:
#!/bin/tcsh

set n = 0

foreach f ( * )
  set _type = `file "$f"`
  switch ( "$_type" )
    case *ASCII*:
      @ n ++
      switch ( "$f" )
        case *.*:
          mv -- "$f" "$f:r"_a"$n"."$f:e"
          continue
          breaksw
      endsw
      mv -- "$f" "$f"_a"$n"
      breaksw
    endsw
end
echo "$n file(s) changed."

# 3  
Old 03-21-2009
Quote:
Originally Posted by yakuzaa
Hi, i need a bit of help writting a tcsh script
[t]csh is not recommended for scripting:

Top Ten Reasons not to use the C shell
Csh problems
Csh Programming Considered Harmful
Quote:

which renames all ascii text files in the current directory by adding a number to their names before the extension

so for example, a directory containing the files

Hello.txt
Hello.t
Hello

should have the following changes,

Hello.txt should be converted to Hello_a1.txt
Hello.t should be converted to Hello_a2.t
Hello should be converted to Hello_a3

so it should put a _a and a number incrementing accordingly.
*********************************************************

Im new to tcsh scripting, though i tried implementing it, and this is where i get to.


#!/bin/tcsh
set n = 1
foreach f ( * )
echo file $f == ascii
if ( $? == 0 ) then
mv "$f:r" "$f:r"_a$n
@ n += 1
endif
end
echo $n changed

Code:
#!/bin/sh
n=1
for f in *
do
  ftype=$(file "$f")
  case $ftype in
     *ASCII*) ext=${f%%*.}
              mv "$f" "${f#.*}_a$n.$ext}"
              n=$(( $n + 1 ))
              ;;
  esac
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Oop to copy and rename files through SQL Statement in shell Script

#!/bin/sh sqlplus -s "/ as sysdba" << EOF SET HEADING OFF SET FEEDBACK OFF Select pt.user_concurrent_program_name , OUTFILE_NAME FROm apps.fnd_concurrent_programs_tl pt, apps.fnd_concurrent_requests f where pt.concurrent_program_id = f.concurrent_program_id and pt.application_id =... (1 Reply)
Discussion started by: usman_oracle
1 Replies

2. UNIX for Dummies Questions & Answers

Rename multiple files in shell bash, changing elements order.

Hi, I want to rename several files like this: example: A0805120817.BHN A0805120818.BHN ..... to: 20120817.0805.N 20120818.0805.N ...... How can i do this via terminal or in shell bash script ? thanks, (6 Replies)
Discussion started by: pintolcv
6 Replies

3. Shell Programming and Scripting

Script to unzip files and Rename the Output-files

Hi all, I have a many folders with zipped files in them. The zipped files are txt files from different folders. The txt files have the same names. If i try to find . -type f -name "*.zip" -exec cp -R {} /myhome/ZIP \; it fails since the ZIP files from different folders have the same names and... (2 Replies)
Discussion started by: pmkenya
2 Replies

4. Shell Programming and Scripting

Windows Power Shell - rename files and move

hi people; i want to make a file/folder operation as follows. - i have 41 folders in Windows and each of them have same-named files (~200 files each) inside. - i want to stack these files together in a folder but Windows is asking to "overwrite" (as usual) since the file names are the same.... (2 Replies)
Discussion started by: gc_sw
2 Replies

5. Shell Programming and Scripting

Shell script to rename a group of files

Hello, I am having 1800 files in a directory with a specified format, like amms_850o_prod.000003uNy amms_850o_prod.000003u8x amms_850o_prod.000003taP amms_850o_prod.000003tKy amms_850o_prod.000003si4 amms_850o_prod.000003sTP amms_850o_prod.000003sBg amms_850o_prod.000003rvx... (12 Replies)
Discussion started by: atlantis
12 Replies

6. Shell Programming and Scripting

Need help for a Shell script to rename multiple files

Hi! I need help to create a shell script to search inside a file and then copy a portion of the search result as the new file name. Basically I was hacked over the weekend and the genius wipe out my drive from my server. I was able to recover alot of files, but biggest problem Is now the... (15 Replies)
Discussion started by: kidney514
15 Replies

7. Shell Programming and Scripting

how to rename all files that have a certain text in the filename using tcsh shell

Hello~ I'm on AIX version 5 and I believe I have the tcsh shell environment to play in. Can you guys help me with a solution to rename all files that have "eclp" in the filename to "ecl" ? I basically want to rename the files and strip the "p" out. i.e. original filenames: ... (3 Replies)
Discussion started by: in2vtec
3 Replies

8. Shell Programming and Scripting

Shell script to rename files with .1,.2,.3 ....ext respectively

Hey Guys.... Just need some help as I am not proficient in Unix shell script... Doubt: --------------- Suppose there will be some of the following files inside a directory called OUT ... Path: - /appdb1/product/batch/rms/OUT files inside OUT directory:- POSU_75002_20090127_20090129035442... (4 Replies)
Discussion started by: satyajit007
4 Replies

9. Shell Programming and Scripting

How to Rename/Convert Files in Shell Scripting?

Hi All, I want to Rename/Convert all the .doc files in to .pdf format. I am using the following Script. But the final output is not proper. ########################################## cd /u13/prepaid/ftpdata/INfiles/sap/ for name in `ls *.doc` do name1=`echo $name | sed -e... (11 Replies)
Discussion started by: hanu_oracle
11 Replies

10. Shell Programming and Scripting

rename files using shell scripting

Hi all, i want to rename some files in my directory using korn shell scripting. 1) i want to rename files who have no extension so that they will have the format: filename.extension and 2) i want the files who has extension initially, to stay the same (they will not be... (4 Replies)
Discussion started by: gfhgfnhhn
4 Replies
Login or Register to Ask a Question