Sponsored Content
Full Discussion: rename direcories recusively
Top Forums Shell Programming and Scripting rename direcories recusively Post 302344314 by latenite on Saturday 15th of August 2009 09:08:55 PM
Old 08-15-2009
i will try your script in a minute...

here is what I came up with...

but i can not "cd" in the for loop.(the commented line in function stepin)..any ideas?

Code:
#!/bin/bash

MYNAME=$0
FROM=$1
TO=$2

function list(){
# lists all directories on the current level
for f in `find ./ -type d`; do echo $f; done | cut -d / -f 1,2 | uniq | tail -n +2
}

function rename(){
# renames all directories on this level
# then calls "stepin" which moves on directorylevel deeper
for l in `list`
    do
    n=`echo $l | sed "s/${FROM}/${TO}/g"`
    if [ "$l" != "$n" ];then
        echo "RENAMING:        " $l " --> " $n
        mv $l $n
        echo ""
    fi
done
stepin
}

function stepin(){
# lists all directories on the current level to "cd" into them
# from here "one level deeper" rename does his job again
echo "stepping in..."
#for s in `list`; do echo "next dir is: "$s "it contains"; ls -l $s; done
for s in `list`; do echo "next dir is: "$s "it contains"; ls -l $s; cd $s; rename; done
}

echo "OLD"; list; echo "OLD_END"
rename
echo "NEW"; list; echo "NEW_END"

thank you so much Smilie
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

rename using mv ?

Hi all how can can remove the underscore from this number in this series _1234567.abc _1234567.abcd I was trying mv _1234567* 1234567 but did not work ? thanks s (2 Replies)
Discussion started by: simon2000
2 Replies

2. UNIX for Dummies Questions & Answers

how can I rename the following=-^

I have a file named -^, I want to look at it, rename, etc. Any help out there?? (5 Replies)
Discussion started by: nj78
5 Replies

3. Shell Programming and Scripting

rename

hi, im doin an assignment which requires you to build a shell script to do the MS DOS style equivilant (sp?) of the rename function. What i have to do is a loop which checks the following rules and output messages (same): Can't have anything after target Can't have more than one dot Can't... (1 Reply)
Discussion started by: bohoo
1 Replies

4. Shell Programming and Scripting

Rename files

Hello, I've a list of file like this img_001 img_22 img_44 and I would rename all with this form photo_0001 photo_0002 photo_0003 photo_0004 suggestions?Thanks to all. (2 Replies)
Discussion started by: cv313x
2 Replies

5. UNIX for Dummies Questions & Answers

need help with rename

hi guys i am writing a script to change the filename which is enterered as input to lower case letter even if one letter is upper case i have to change it to lower case i get the input and use sed comand should i use like that sed/s/a-z/A-Z/d will it be like that can u please help me (8 Replies)
Discussion started by: farhan_t49
8 Replies

6. UNIX for Dummies Questions & Answers

Rename a file

how to rename a file if I don't know file location ? Can we below command : $ find / | mv file1.txt I am not sure........can any1 help me out ? Thanks, Tushar Joshi:mad: (1 Reply)
Discussion started by: tusharjoshi
1 Replies

7. Shell Programming and Scripting

rename file

Hi, I have files in the format thread_1_seq_1965.440.755943413 thread_1_seq_1966.577.755943443 thread_2_seq_2034.383.388388888 I want to rename this in the form of 1_1965.arc 1_1966.arc 2_2034.arc Discard everything except the th char and . The character position... (3 Replies)
Discussion started by: bang_dba
3 Replies

8. Shell Programming and Scripting

How to use function 'rename' ?

hello, all I have following files: file_1 file_2 file_3 ... file_9 Now I want to rename them as: file_001 file_002 file_003 ... file_009 how to use function 'rename' to accomplish this task? (2 Replies)
Discussion started by: littlewenwen
2 Replies

9. UNIX for Dummies Questions & Answers

Using rename

I want to rename files Files show like this 1977SSD_rsdtst.pdf 1976SDP_rstdtsr.pdf 1943FDT_rstdsrt.pdf 1996DFF_stdstrd.pdf I want to introduce _ after the year, and move the characters to the end to get 1977_rsdtst_SSD.pdf 1976_rstdtsr_SDP.pdf 1943_rstdsrt_FDT.pdf... (4 Replies)
Discussion started by: kristinu
4 Replies

10. Shell Programming and Scripting

Using rename

Renaming files using rename on the following files rename 's/.99999/.99999.sac.pzs/g' *.99999 sac_pzs_iv_esml_hhz__2013.074.10.18.23.0000_2599.365.23.59.59.99999 sac_pzs_iv_favr_hhe__2010.187.00.00.00.0000_2599.365.23.59.59.99999... (1 Reply)
Discussion started by: kristinu
1 Replies
RENAME(1)							   User Commands							 RENAME(1)

NAME
rename - rename files SYNOPSIS
rename [options] expression replacement file... DESCRIPTION
rename will rename the specified files by replacing the first occurrence of expression in their name by replacement. OPTIONS
-v, --verbose Give visual feedback which files where renamed, if any. -V, --version Display version information and exit. -s, --symlink Peform rename on symlink target -h, --help Display help text and exit. EXAMPLES
Given the files foo1, ..., foo9, foo10, ..., foo278, the commands rename foo foo0 foo? rename foo foo0 foo?? will turn them into foo001, ..., foo009, foo010, ..., foo278. And rename .htm .html *.htm will fix the extension of your html files. WARNING
The renaming has no safeguards. If the user has permission to rewrite file names, the command will perform the action without any ques- tions. For example, the result can be quite drastic when the command is run as root in the /lib directory. Always make a backup before running the command, unless you truly know what you are doing. SEE ALSO
mmv(1), mv(1) AVAILABILITY
The rename command is part of the util-linux package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/. util-linux June 2011 RENAME(1)
All times are GMT -4. The time now is 07:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy