Replacing specific characters using sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing specific characters using sed
# 1  
Old 12-28-2012
Apple Replacing specific characters using sed

Hi,

I have a text file which is output from a server and it lists all the files in a specific volume. However, the volume name appears as volume_name:.
I would like to replace this with \\volume_name\volume_name. This is not a problem in itself as I can use sed to globally look for the volume_name: pattern in the text file and replace it with the correct string.

However, since there are many volume names in different text files and the process to replace them is exactly the same, I was thinking of a more generic solution.

So at the moment the format goes like this:

Code:
^volume_name:\folder_name\folder_name^

Is it possible to use sed to analyse the characters from between ^ and \ and then replace them with \\volume_name\volume_name minus the colon. The ^ sign is the delimiter in this file.

Any suggestion most appreciated.

Regards,

vnayak
# 2  
Old 12-28-2012
Well, it seems almost the norm for sed type stuff, but maybe you have not been to vi/ex/sed school!
Code:
sed '
  s/^\([a-zA-Z0-9_]\{3,33\}\):/\\\\\1\\\1/
 ' in_file1 >out_file1

If you have the gnu sed, you can use -i for update in place, but I would not: disk is cheap and mistakes are expensive, so make new files.
# 3  
Old 12-28-2012
Apple Replacing specific characters using sed

Hi DGPickett,

Thanks for your prompt reply and for the code. However, when I try it does
not do anything to the file I have. So I created a test document (in Pico!) which contained the following data:

Code:
^server_name:\folder\folder name\

and the sed routine did not modify to \\server_name\server_name as I would have expected.

Any ideas?

Many thanks,

vnayak
Quote:
Originally Posted by DGPickett
Well, it seems almost the norm for sed type stuff, but maybe you have not been to vi/ex/sed school!
Code:
sed '
  s/^\([a-zA-Z0-9_]\{3,33\}\):/\\\\\1\\\1/
 ' in_file1 >out_file1

If you have the gnu sed, you can use -i for update in place, but I would not: disk is cheap and mistakes are expensive, so make new files.
# 4  
Old 12-28-2012
Is the caret mark a literal in your file. I think we need more examples.
# 5  
Old 12-28-2012
Apple Replacing specific characters using sed

Yes. It is setup to be a delimiter. This file will be transferred to Excel at some stage and the caret is only sign that will allow other data in the file to be imported properly.

So for example each line in the file is constructed like this:

Code:
"OWNER^volume_name:\Volume_name^LONG^[Supervisor]^"
"OWNER^volume_name:\Volume_name\folder^LONG^[Supervisor]^"

I hope this make it a bit clearer.

vnayak

Quote:
Originally Posted by DGPickett
Is the caret mark a literal in your file. I think we need more examples.
# 6  
Old 12-31-2012
Case shift and all? volume_name Volume_name
# 7  
Old 12-31-2012
Apple Replacing specific characters using sed

Hi DGPickett,

I am not sure what you mean. Would you mind re-explaining that?

Thanks,

vnayak

Quote:
Originally Posted by DGPickett
Case shift and all? volume_name Volume_name
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed command on AIX, replace specific characters

Hi, Im using sed on an AIX machine. I am trying to change the 137-139 characters if they are a ' 36'/'000' to a '036'. The positions that need to be changed are fixed. the source data that I have is$cat v.txt 4000422985400050462239065593606500000007422985707771046154054910075641MC0318AMWAY... (9 Replies)
Discussion started by: dsid
9 Replies

2. Shell Programming and Scripting

Replacing specific entry using sed

Hi guys, I'm new to bash programming, so please pardon me. I'm trying to replace an entry's text in Books.txt This code works perfectly: sed -i "s/$BookTitle/$NewBookTitle/g" Books.txt But problem is, if there are double entries, it will also replace that entry. For example: ... (12 Replies)
Discussion started by: todaealas
12 Replies

3. Shell Programming and Scripting

How delete characters of specific line with sed?

Hi, I have a text file with some lines like this: /MEDIA/DISK1/23568742.MOV /MEDIA/DISK1/87456321.AVI /MEDIA/DISK2/PART1/45753131.AVI /IMPORT/44452.WAV ... I want to remove the last 12 characters in each line that it ends "AVI". Should look like this: /MEDIA/DISK1/23568742.MOV... (12 Replies)
Discussion started by: inaki
12 Replies

4. Shell Programming and Scripting

sed replacing specific characters and control characters by escaping

sed -e "s// /g" old.txt > new.txt While I do know some control characters need to be escaped, can normal characters also be escaped and still work the same way? Basically I do not know all control characters that have a special meaning, for example, ?, ., % have a meaning and have to be escaped... (11 Replies)
Discussion started by: ijustneeda
11 Replies

5. Shell Programming and Scripting

sed or tr to remove specific group of special characters

Hi, I have a input of the form: ..., word1, word2, word3... I want out put of the form word1, word2, word3 I tried echo '..., word1, word2, word3...' | tr -d '...,' but that takes out the commas in the middle too so I get word1 word2 word3 but I want the commas in the middle. ... (3 Replies)
Discussion started by: forumbaba
3 Replies

6. Shell Programming and Scripting

SED Replacing all but one regex match on a line or specific matches

Hi, I'm attempting to rename some files that have spaces in them. Without linking sed commands together is it possible to replace the first three "." to " ". File.name.is.long.ext -> File name is long.ext I can get the desired effect with echo "File.name.is.long.ext" | sed 's/\./ /g;s/... (5 Replies)
Discussion started by: vectox
5 Replies

7. Shell Programming and Scripting

Sed - merge lines bw 2 specific characters

Hi, I have a bash script and I am looking for a command that will merge specific lines together. Sample Data: registration time = 1300890272 Id = 1 setd = 0 tagunt = 26 tagId=6, length=8, value= tagId=9, length=5, value= tagId=7, length=2, value= tagId=16, length=2, value= tagId=32,... (8 Replies)
Discussion started by: Winsarc
8 Replies

8. UNIX for Dummies Questions & Answers

sed replacing in vi, / characters in the middle

I tried to replace the following in vi: old: 'e/thesis/pp/zones/zones' new: 'd/so162/fix/pp' For that, I used: :%s/e/thesis/pp/zones/zones/d/so162/fix/pp/g but doesn't work, a trailing character error message appeared. How can I get it? Thanks in advance (3 Replies)
Discussion started by: Gery
3 Replies

9. Shell Programming and Scripting

help on sed replacing special characters

Hello, I have a file with many lines with below format: \abc\\1234 jkl\\567 def\\345 \pqr\\567 \xyz\\234 Here, i need to do 2 things. 1. replace \\ with \ 2. remove starting \ so output to be as below: (11 Replies)
Discussion started by: prvnrk
11 Replies

10. Shell Programming and Scripting

replacing specific characters in a string

Hi Friends, Following is an output of a script OPWQERIUTYKLSADFJHGXZNMCVBWQOPERIUTYKLSADFJHGXZNMCVB I want to replace above string's 11 to 17 character by ******* (7 stars) How can it be done? Please somebody guide me. (6 Replies)
Discussion started by: anushree.a
6 Replies
Login or Register to Ask a Question