Rename file using sed or awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rename file using sed or awk
# 15  
Old 06-07-2012
Quote:
Originally Posted by sandy88
thanks a lot its working fine, can you explain that sed command, i am not getting it & more over i want the desired output like 1_120606259899_3_4.5
what is your O.S (solaris or aix or ?_)
with Gnu Sed
Code:
# val=9899
echo $INPUT|sed 's/\(._.\{8\}\).\{4\}\(_.*_\).*/\1'$val'\2/'
1_120606259899_3_4.5_

so it is
Code:
# echo $INPUT|sed 's/\(._.\{8\}\).\{4\}\(_.*\)_.*/\1'$val'\2/'
1_120606259899_3_4.5

and little explanation
Code:
._ --> one char (first char) (1)
.\{8\}\ --> 8 chars
\( ........ \)  --> save portion of our string for write in the RHS (cut and save it to buffer and it is equal to \1 [backreference numbered 1] , 
the sed structure is named "back reference headache(sed buffer) for after the write the stdoutput in the RHS[the right-hand side] 
liitle expl --> sed 's/THIS/CHANGE/'  --> LHS is the "THIS" in here and RHS is the "CHANGE")
.\{4\}  --> remaining 4 chars from our string

so we get the ._ -> first char from string --> "1" and "_"
and 8 chars --> "12060625"  
and 4 chars --> "9532"
\(._.\{8\}\) --> (\1 --> 1_12060625)
\(_.*\)  --> "_3_4.5"  (it is our back reference numbered 2 --> it expressed like --> \2)
_.*  --> "_888" 

and in the RHS(right-hand side sed 's/...../...../') we can the write that the our values

so ....../\1'$val'\2/
\1 --> 1_12060625
$val --> "9899"
\2 --> "_3_4.5"

result is "1_120606259899_3_4.5"

regards
ygemici

Last edited by ygemici; 06-07-2012 at 10:04 AM..
This User Gave Thanks to ygemici For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed replace to rename each line a file

Have a file in this format This is line one ; line_one This is line two ; line_two This is line three ; line_three This is line four ; line four. I'm trying to make each line a new file called line_one line_two line_three line_four. Tried using split -1 but then I'm back needing to rename... (3 Replies)
Discussion started by: jimmyf
3 Replies

2. Shell Programming and Scripting

awk : split file and rename and save in path according to content

Hello, I'm using Windows 7 ; sed, awk and gnuwin32 are installed. I have a big text file I need to manipulate. In short, I will have to split it in thousands of short files, then rename and save in a folder which name is based upon filename. Here is a snippet of my big input.txt file (this... (4 Replies)
Discussion started by: sellig
4 Replies

3. UNIX for Dummies Questions & Answers

awk - Rename output file, after processing, same as input file

I have one input file ABC.txt and one output DEF.txt. After the ABC is processed and created output, I want to rename ABC.txt to ABC.orig and DEF to ABC.txt. Currently when I am doing this, it does not process the input file as it cannot read and write to the same file. How can I achieve this? ... (12 Replies)
Discussion started by: High-T
12 Replies

4. UNIX for Dummies Questions & Answers

Rename scripts using xargs/sed

Morning all I've got loads of scripts but the names are too long! I've stuck the list in a flat file (names) and I'm trying to read that in line by line and create the new names (in to directory new) from the list. It looks like this: xargs -n1 -I{} <names cat {} | sed... (1 Reply)
Discussion started by: Grueben
1 Replies

5. Shell Programming and Scripting

sed file rename

Ubuntu -very new to shell scripts/Linux I have many pictures with "FAMILY", "family" mixed in the file name and not all in the same directory; I want to remove "family" case insensitive from the filenames; find /media/Rock/pics/pics_bak/ -type f "*family*" | sed 's#family##gI' # works for... (2 Replies)
Discussion started by: jennyjones
2 Replies

6. Shell Programming and Scripting

sed to rename files in a folder - please help with script

Hello, I am new to shell scripting and stuck on renaming files in a folder. The files have the format chp01_00001.wav chp01_00002.wav .... chp02_00001.wav chp02_00002.wav .... but I want them to have the following names: chp_bloomy_00001.wav chp_bloomy_00002.wav chp_bloomy_00003.wav... (8 Replies)
Discussion started by: Bloomy
8 Replies

7. 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

8. UNIX for Dummies Questions & Answers

Sed or Awk usage to rename string

I have gotten myself totally lost trying to sort this out and just need some help please.. I will have a multiple directories using the following naming convention with an undetermined number of files in each directory. 9780743582094_05of5_Accountable.wav I need to batch rename all files... (5 Replies)
Discussion started by: glev2005
5 Replies

9. Shell Programming and Scripting

Rename file using sed command

Greetings, I am very new to the UNIX shell scripting and would like to learn. However, I am currently stuck on how to process the below sample : Filename : DOCabcdef24387987ab90d.xml Pattern "DOC"+any character using and +".xml" And i want to change the second part of that file (any... (20 Replies)
Discussion started by: fanny_tirtasari
20 Replies

10. Shell Programming and Scripting

Using sed (or similar) to rename variable headings

Hello, I'm rather new to the world of regular expressions and sed, though am excited by its possibilities. I have a particular task I'd like to achieve, and have googled the topic quite a bit. However, having found some codes that perform a task very similar to what I'd like to do, I can't for... (2 Replies)
Discussion started by: redseventyseven
2 Replies
Login or Register to Ask a Question