Sponsored Content
Full Discussion: Batch rename recursively
Top Forums UNIX for Dummies Questions & Answers Batch rename recursively Post 302329113 by ghostdog74 on Friday 26th of June 2009 01:34:25 AM
Old 06-26-2009
Code:
awk 'BEGIN{
    q="\047"
    path="/path/to/search"
    cmd="find "path" -type f -name \"*_*.jpg\""
    while(( cmd|getline f )>0){
        m=split(f,file,"/")
        gsub(/_/,"-",file[m])
        newfilename = join(file,1,m,"/")            
        mv = "mv "q f q" "q newfilename q
        print mv
        #system(mv) #uncomment to use                     
        close(mv)
    }
    close(cmd)
}
function join(array, start, end, sep,    result, i)
{
         if (sep == "") sep = " "
         else if (sep == SUBSEP) sep = ""
         result = array[start]
         for (i = start + 1; i <= end; i++)
             result = result sep array[i]
         return result
}'


Last edited by ghostdog74; 06-26-2009 at 03:17 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

rename in batch

example test1 will have m1234567.12a I would like to rename in batch but I don't Please help me on this. cd /a1/a2/a3 test1=$(basename /a1/a2/a3/*.*) >> /tmp/t echo $test1 echo "Extracting 8 th position" >> /tmp/t2 awk '{print substr($1,8,1); }' $test1 >> /tmp/t3 echo "extraction ... (3 Replies)
Discussion started by: kathy18
3 Replies

2. UNIX for Advanced & Expert Users

rename the file in batch

In my dir there are files like a.xml b.xml abnc.xml 12.abc.xml 12.anc.sfoioi.xml I need to remove .xml from all the files Is there any direct way without using any for/do loop Right now i am using for file in * do ... (7 Replies)
Discussion started by: reldb
7 Replies

3. Shell Programming and Scripting

Rename files recursively

hi I have files named 123_234_aaa.jpg 234_231_345.jpg and i wish to rename these files to aaa.jpg and 345.jpg. i.e inital number,_,next number should be removed form the file name. Please let me know how can i do it. (2 Replies)
Discussion started by: vasuarjula
2 Replies

4. Shell Programming and Scripting

Batch rename files after internal search pattern

Hello all I am trying to do a script that would allow me to mass rename files after a grep search within them. They are XML files and the pattern I would like to append to the file name is easy to find (e.g. <filename>foo</filename>), but I can't for the life of me find out how to do it and... (2 Replies)
Discussion started by: aavv
2 Replies

5. Shell Programming and Scripting

try to batch rename using sed (if this is best)

hi gooday I need some help with a rename I am attempting. I'd like to rename a bunch of files in a folder example list.dat.old to list_N.dat query.dat.old to query_N.dat note the two periods in (.dat.old) to become _N.dat I tried using sed like this ls *.dat.old | sed... (3 Replies)
Discussion started by: johnstrong
3 Replies

6. Shell Programming and Scripting

Recursively rename some files

Hello, I have one directory with 3 level sub-directories, and about houndard files under those directories. I need a shell script to rename all patern mateched directories and files. For example: the patern is AA in the directory or file name. Orignal directory:... (2 Replies)
Discussion started by: mail4mz
2 Replies

7. Shell Programming and Scripting

Recursively rename directories

I have this directory tree under /apps/myapp/data: imageshack.us/photo/my-images/703/foldersc.png How to recursively rename ONLY directories with 5 digits (00000, 00100, 00200,..., 00007, 00107,...)? I want to add to their name two more zeros: Before: 00107 After: 0000107 Thanks in... (2 Replies)
Discussion started by: Susan_45
2 Replies

8. Shell Programming and Scripting

Batch rename files that do not match pattern

Hi all, I do not have programming experience and mostly use one-liner or sometimes more to get the job done. I am having problem to batch rename the files that do not match a particular pattern. Sample file-names from directory: Meeting_Packages.pdf 13_textfile0 19_textfile0 ... (3 Replies)
Discussion started by: atulkakrana
3 Replies

9. Shell Programming and Scripting

Batch Script To Unzip and Rename File

Hello All, I need help in writing a batch script. I have 100 zip files in a folder. Each zip file has a unique name starting with XYZ_12345.zip Each zip file contains single csv file I would like to batch extract the files and also rename the extracted csv as per the original zip name... (6 Replies)
Discussion started by: rajlakshmi
6 Replies

10. UNIX for Dummies Questions & Answers

Find and rename file recursively

Hi, I have a directory which contains multiple files with .txt extension, i want to rename all these file to .bak extension using find command, this is what i've tried, please help me to correct this : find /home/application/test -name '*.txt' -exec rename 's/txt/bak/' {} \; seems to... (8 Replies)
Discussion started by: mukulverma2408
8 Replies
Regexp::Common::net(3)					User Contributed Perl Documentation				    Regexp::Common::net(3)

NAME
Regexp::Common::net -- provide regexes for IPv4 addresses. SYNOPSIS
use Regexp::Common qw /net/; while (<>) { /$RE{net}{IPv4}/ and print "Dotted decimal IP address"; /$RE{net}{IPv4}{hex}/ and print "Dotted hexadecimal IP address"; /$RE{net}{IPv4}{oct}{-sep => ':'}/ and print "Colon separated octal IP address"; /$RE{net}{IPv4}{bin}/ and print "Dotted binary IP address"; /$RE{net}{MAC}/ and print "MAC address"; /$RE{net}{MAC}{oct}{-sep => " "}/ and print "Space separated octal MAC address"; } DESCRIPTION
Please consult the manual of Regexp::Common for a general description of the works of this interface. Do not use this module directly, but load it via Regexp::Common. This modules gives you regular expressions for various style IPv4 and MAC (or ethernet) addresses. $RE{net}{IPv4} Returns a pattern that matches a valid IP address in "dotted decimal". Note that while 318.99.183.11 is not a valid IP address, it does match "/$RE{net}{IPv4}/", but this is because 318.99.183.11 contains a valid IP address, namely 18.99.183.11. To prevent the unwanted matching, one needs to anchor the regexp: "/^$RE{net}{IPv4}$/". For this pattern and the next four, under "-keep" (See Regexp::Common): $1 captures the entire match $2 captures the first component of the address $3 captures the second component of the address $4 captures the third component of the address $5 captures the final component of the address $RE{net}{IPv4}{dec}{-sep} Returns a pattern that matches a valid IP address in "dotted decimal" If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/[.]/". $RE{net}{IPv4}{hex}{-sep} Returns a pattern that matches a valid IP address in "dotted hexadecimal", with the letters "A" to "F" capitalized. If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/[.]/". "-sep=""" and "-sep=" "" are useful alternatives. $RE{net}{IPv4}{oct}{-sep} Returns a pattern that matches a valid IP address in "dotted octal" If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/[.]/". $RE{net}{IPv4}{bin}{-sep} Returns a pattern that matches a valid IP address in "dotted binary" If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/[.]/". $RE{net}{MAC} Returns a pattern that matches a valid MAC or ethernet address as colon separated hexadecimals. For this pattern, and the next four, under "-keep" (See Regexp::Common): $1 captures the entire match $2 captures the first component of the address $3 captures the second component of the address $4 captures the third component of the address $5 captures the fourth component of the address $6 captures the fifth component of the address $7 captures the sixth and final component of the address This pattern, and the next four, have a "subs" method as well, which will transform a matching MAC address into so called canonical format. Canonical format means that every component of the address will be exactly two hexadecimals (with a leading zero if necessary), and the components will be separated by a colon. The "subs" method will not work for binary MAC addresses if the Perl version predates 5.6.0. $RE{net}{MAC}{dec}{-sep} Returns a pattern that matches a valid MAC address as colon separated decimals. If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/:/". $RE{net}{MAC}{hex}{-sep} Returns a pattern that matches a valid MAC address as colon separated hexadecimals, with the letters "a" to "f" in lower case. If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/:/". $RE{net}{MAC}{oct}{-sep} Returns a pattern that matches a valid MAC address as colon separated octals. If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/:/". $RE{net}{MAC}{bin}{-sep} Returns a pattern that matches a valid MAC address as colon separated binary numbers. If "-sep=P" is specified the pattern P is used as the separator. By default P is "qr/:/". $RE{net}{domain} Returns a pattern to match domains (and hosts) as defined in RFC 1035. Under I{-keep} only the entire domain name is returned. RFC 1035 says that a single space can be a domainname too. So, the pattern returned by $RE{net}{domain} recognizes a single space as well. This is not always what people want. If you want to recognize domainnames, but not a space, you can do one of two things, either use /(?! )$RE{net}{domain}/ or use the "{-nospace}" option (without an argument). REFERENCES
RFC 1035 Mockapetris, P.: DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION. November 1987. SEE ALSO
Regexp::Common for a general description of how to use this interface. AUTHOR
Damian Conway damian@conway.org. MAINTAINANCE
This package is maintained by Abigail (regexp-common@abigail.be). BUGS AND IRRITATIONS
Bound to be plenty. For a start, there are many common regexes missing. Send them in to regexp-common@abigail.be. LICENSE and COPYRIGHT This software is Copyright (c) 2001 - 2009, Damian Conway and Abigail. This module is free software, and maybe used under any of the following licenses: 1) The Perl Artistic License. See the file COPYRIGHT.AL. 2) The Perl Artistic License 2.0. See the file COPYRIGHT.AL2. 3) The BSD Licence. See the file COPYRIGHT.BSD. 4) The MIT Licence. See the file COPYRIGHT.MIT. perl v5.16.2 2010-02-23 Regexp::Common::net(3)
All times are GMT -4. The time now is 06:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy