How to bulk changing partial file name in Linux?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to bulk changing partial file name in Linux?
# 1  
Old 08-24-2011
How to bulk changing partial file name in Linux?

I have a bunch of database files in a directory. Their name are like:

1234_ABCD_01.dbf, 28hrs_ABCD_02.dbf

I want to change them in bulk to:

1234_XXXU_01.dbf, 28hrs_XXXU_02.dbf.

I mean I just want to replace ABCD by XXXU. don't change other part of the file name and the contents of the file. What is the best and easy way to do it. Please help me to figure out the Linux command or script. Thanks in advance.
# 2  
Old 08-24-2011
This is the most straight forward:

Code:
#!/usr/bin/ksh

ls *dbf | while read f
do
    echo mv $f ${f/_ABCD_/_XXXU_}
done

Probably works in bash. Execute it and verify that the move commands list the filie names correctly, then remove the echo to actually do the renaming.

The syntax ${var/string/repl} replaces the first occurrence of 'string' that it finds in the contents of var, with 'repl.'
# 3  
Old 08-25-2011
agama:

Thanks a lot. It worked precisely. You are the guru.
# 4  
Old 08-25-2011
Except that the solution would have problems taking care of files with white spaces..., if any. Its bad practice to use ls and pipe to while loop (extra overheads) to loop over files like that. Use shell expansion instead. eg

Code:
for file in *ABCD*...
do
  ....
done

Alternatively, if you have Ruby(1.9.1+), here's a one-liner

Code:
$ ruby -e 'Dir["*ABCD*"].each {|f|File.file?(f) &&File.rename(f, f.gsub("ABCD","XXXU"))}'

# 5  
Old 08-29-2011
kurumi:

Thanks for your advice. This gave more ways to handle my case. I have learned from you.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk to update file with partial matching line in another file and append text

In the awk below I am trying to cp and paste each matching line in f2 to $3 in f1 if $2 of f1 is in the line in f2 somewhere. There will always be a match (usually more then 1) and my actual data is much larger (several hundreds of lines) in both f1 and f2. When the line in f2 is pasted to $3 in... (4 Replies)
Discussion started by: cmccabe
4 Replies

2. UNIX for Beginners Questions & Answers

Zenity and bulk file movements

Hi all. Total beginner to Zenity. I've plagiarised bits of code from all over to try to get something to work. The story: I have a directory with maybe 10-15 files in it, each about 200MB. i send these files one at a time to a drive about 15 miles away. The Synology sync can only handle... (0 Replies)
Discussion started by: Alfitch
0 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

Partial file pulling

I am connecting to another server through sftp. I am running one batch script to pull file from another server. sometimes i am receiving partial files. I am using below commands in batch script. ls -ltr new.txt mget new.txt bye The file is of 1 MB only.In most of the cases , i received... (6 Replies)
Discussion started by: srinath01
6 Replies

5. Shell Programming and Scripting

How to select bulk of info from log file?

unix : sun shell : bash i need to select multiple rows with this format : <special format> 10 lines /<special format> from log file that have lots of info i thought of getting the number of the first line using grep -n "special format" file | cut -d: -f1 then pass it to shell... (2 Replies)
Discussion started by: scorpioneer
2 Replies

6. UNIX for Dummies Questions & Answers

Partial Write for sockets in LINUX

We have a server-client communication in our application. Sockets are used for the communication. We are using AF_INET sockets with SOCK_STREAM(TCP/IP). Also these sockets are in Non Blocking mode (O_NONBLOCK). Application is written in C++ on UNIX. In our system the Server will write to a... (4 Replies)
Discussion started by: sanushchacko
4 Replies

7. Shell Programming and Scripting

AWK - Print partial line/partial field

Hello, this is probably a simple request but I've been toying with it for a while. I have a large list of devices and commands that were run with a script, now I have lines such as: a-router-hostname-C#show ver I want to print everything up to (and excluding) the # and everything after it... (3 Replies)
Discussion started by: ippy98
3 Replies

8. Shell Programming and Scripting

Need help renaming bulk file extentions

Hello, I am trying to rename bulk files however i dont think the rename/mv command is giong to help me here. here is a quick snapshot of the files I need to rename: 75008040 -rw-r----- 1 root root 8716 May 8 05:00 10.9.144.2 75008041 -rw-r----- 1 root root 11700 May 8 05:00 10.9.160.2... (10 Replies)
Discussion started by: jallan
10 Replies

9. Shell Programming and Scripting

extract bulk emails into a single flat file

Hello Can someone guide me how to extract bulk emails into a single flat file ? We receive mails (approx 1K daily ). I want the contents of the emails for 'current date' to be dumped into one single text file. Please help. (1 Reply)
Discussion started by: Amruta Pitkar
1 Replies

10. Programming

How to read specific lines in a bulk file using C file Programming

Please Help me I have a Bulk file containing Hex data I want to read specific lines from that bulk file by ID number. example ID DATE Time data 14 2005/09/28 07:40:08.546 0 5 078B1C 01916C 0FE59C 004B54 0A9670 0D04ED 05B6B4 0E2223... (10 Replies)
Discussion started by: rajan_ka1
10 Replies
Login or Register to Ask a Question