Change part of filenames in a bulk way


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Change part of filenames in a bulk way
# 1  
Old 06-06-2011
Change part of filenames in a bulk way

Hallo!

I have generated lots of data file which all having this format:

Code:
sp*t1overt2*.txt

Now I want to change them in this way:

Code:
sp*t2overt1*.txt

The rest of the file names stay unchanged. I know this is kind of routine action in sed or awk, but dont know how! I tried this command:

Code:
ls sp* | sed 's/\(t1)su(t2)/mv & \2\1/'

and also this:

Code:
ls sp* | sed 's/\(t1).\(t2)/mv & \2\1/'

but none worked and I get this error:

Code:
sed: -e expression #1, char 24: Unmatched ( or \(

Can someone tell me how to fix? I really need to change those file names.

Cheers,
Renzo

Last edited by pludi; 06-06-2011 at 01:53 PM..
# 2  
Old 06-06-2011
Code:
ls sp* | sed '
  s/\(.*\)t1overt2\(.*\)/mv & \1t2overt1\2/
 ' | sh

This User Gave Thanks to DGPickett For This Post:
# 3  
Old 06-06-2011
yet another way...
Code:
ls sp*t1overt2*.txt | sed 's/\(.*\)\(t1\)\(.*\)\(t2\)\(.*\)/\1\4\3\2\5/' | xargs mv sp*t1overt2*.txt

# 4  
Old 06-06-2011
No, don't think xargs can apply. Only if t1overt2 is substring of a directory can you move more than one per mv, and then you must make it one per directory.
# 5  
Old 06-06-2011
Quote:
Originally Posted by DGPickett
No, don't think xargs can apply. Only if t1overt2 is substring of a directory can you move more than one per mv, and then you must make it one per directory.
I copied and pasted incorrectly...but you can apply xargs to a wildcard filename as follows...
Code:
ls sp*t1overt2*.txt | sed 'p;s/\(.*\)\(t1\)\(.*\)\(t2\)\(.*\)/\1\4\3\2\5/' | xargs -n 2 mv

# 6  
Old 06-06-2011
Well, it is just doing one file at a time, then, so xargs is not adding any value over that of a shell.
# 7  
Old 06-06-2011
Quote:
Originally Posted by DGPickett
Code:
ls sp* | sed '
  s/\(.*\)t1overt2\(.*\)/mv & \1t2overt1\2/
 ' | sh

Thank you so much! That was all I wanted Smilie
cheers,
R
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bulk NIS Users Password Change

Hi All, I am having Solaris 5.10 acting as NIS. How do i change multiple user password in NIS in a batch. I have predefined users with their passwords to be set: Example: user1 password1 user2 password2 Pls advise. (0 Replies)
Discussion started by: yogajwa
0 Replies

2. Shell Programming and Scripting

Change filenames recursively

Hello, I made a mistake in a script and now need to go back and change allot of filenames. I need to change "v4" in filenames to "v3". I was thinking of something like this. #!/bin/bash FILELIST=$(ls -f -R *) for FILE in $FILELIST do # create new filename ... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

3. Shell Programming and Scripting

Renaming Filenames by replacing a part

Hi, I have little experience on Shell scripts, I searched the forum but couldn't make out what I want. I want to rename a set of files to a new file name a_b_20100101 c_d_20100101 ....................... ...................... I want to rename the files to a_b_20140101... (5 Replies)
Discussion started by: JaisonJ
5 Replies

4. Shell Programming and Scripting

change filenames but not extension

I have a filename with a bunch of periods that I want to replace with underscores, but I don't want to change the extension. Ex: I want file.test1.f-1.fig.eps to be file_test1_f-1_fig.eps Using awk, the following line will replace ALL periods with underscores, but I want to leave the... (2 Replies)
Discussion started by: erinbot
2 Replies

5. Shell Programming and Scripting

Change all filenames under different folders...

Hi, all: I'd love to use shell script to change all filenames under different folders once for all: I've got over 100 folders, in each of them, there is a file named "a.ppm". I wanna change all these "a.ppm" to "b.ppm", and still . Visually, the directory structure looks like: and hope... (1 Reply)
Discussion started by: jiapei100
1 Replies

6. UNIX for Dummies Questions & Answers

Filenames change in a directory

Hi I have abc_ahb_one.v abc_ahb_two.v abc_ahb_three.v ........l like this -----upto abc_ahb_ninety.v in some directory. I need to change those file names to like below. ... (5 Replies)
Discussion started by: praneethk
5 Replies

7. Solaris

Change passwd for bulk servers using SSH script

Hi, I need to Change passwd for bulk servers using SSH script. I have one server, from which i can reach all the servers without password via SSH. There is some expect script, from which i can achieve it. Can any one help me out here. Thanks in advance. Vicky (1 Reply)
Discussion started by: vickyingle5
1 Replies

8. Shell Programming and Scripting

Change all filenames in a directory

I have a directory of files and each file has a random 5 digit string at the beginning that needs to be removed. Plus, there are some files that will be identically named after the 5 digit string is removed and I want those eliminated or moved. any ideas? (17 Replies)
Discussion started by: crumb
17 Replies

9. UNIX for Dummies Questions & Answers

Best practice for bulk multi-part mail

Hi, I am currently building a PHP/MySQL database that handles our offices newsletters. Now everything works great in the alpha with only a few names in the list, but I anticipate that once we fill it up (around 10,000) that this will not work from the PHP. I already have the script echo the... (0 Replies)
Discussion started by: begin23
0 Replies

10. Shell Programming and Scripting

grepping a part of filenames

Hi , I have a list of files in a directory and filename format is as follows: PQ223390 PQ876912 PQ768901 PQ398140 and so on I want to grep the first four digits of all the files after PQ, into a file. Ex: 2233 8769 6890 3981 and so on Can anyone tell me the command? thankx jazz (11 Replies)
Discussion started by: jazz
11 Replies
Login or Register to Ask a Question