Sed diffrent replace by occurrence


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sed diffrent replace by occurrence
# 1  
Old 12-06-2011
Sed diffrent replace by occurrence

I couldn't find the answer anywhere, so I hope you could help me.
I need to change something like the following:
something/bla/aaaa
anything/bbb
to:
something
--bla
----aaaa
anything
--bbb

How do I do this?
Is it possible with sed?
I tried various patterns, but don't know how to change next occurence to something else then I changed the first occurence.
Hope it doesn't sound too pell-mell and you know what I mean.
# 2  
Old 12-06-2011
hope this will help you.
Code:
awk -F"/" '{a="";for(i=1;i<=NF;i++){print a""$i;a=(a "-")}}' filename.txt


Last edited by Franklin52; 12-07-2011 at 03:25 AM.. Reason: Please use code tags for code and data samples, thank you
This User Gave Thanks to tarun_agrawal For This Post:
# 3  
Old 12-06-2011
Try this...
Code:
awk -F"/" '{p=0;for(i=1;i<=NF;++i){j=p;while(j-->0){printf "-"}p+=2;print $i}}' input_file

--ahamed

Last edited by ahamed101; 12-06-2011 at 11:05 PM..
This User Gave Thanks to ahamed101 For This Post:
# 4  
Old 12-06-2011
Sed as requested by OP, maybe there is a shorter way to regex this in sed, but anyhow, here is what I have:

Code:
sed -ne 's/\(.*\)\(\/\)\(.*\)\(\/\)\(.*\)/\1\n--\3\n----\5/p;s/\(.*\)\(\/\)\(.*\)/\1\n--\3/p'


Here is the test output:

Quote:
$ sed -ne 's/\(.*\)\(\/\)\(.*\)\(\/\)\(.*\)/\1\n--\3\n----\5/p;s/\(.*\)\(\/\)\(.*\)/\1\n--\3/p' <<EOT
something/bla/aaaa
someother/abc
EOT

something
--bla
----aaaa
someother
--abc
# 5  
Old 12-06-2011
If the data pasted by the OP is fixed then the following sed will suffice...
Code:
sed 's!/!\n--!;s!/!\n----!' input_file

else use the AWK solution in post#3...

--ahamed

Last edited by ahamed101; 12-06-2011 at 11:50 PM..
This User Gave Thanks to ahamed101 For This Post:
# 6  
Old 12-07-2011
Awesome!
It works perfectly, thank you very much for the help.

Unfortunately the data is not fixed, so I had to use awk.
Anyway, tarun agrawal, ahamed101, your solutions work excellent.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace first occurrence of a string in while loop

####Solved#### Hello, My aim is to replace searched string with incremented value under ubuntu 16.04. Example: aasasasas 9030 31wwo weopwoep weerasas 9030 ew31wo ieopwoep bbqqqsas 9030 ew3swo ieeopwoep ccsaqpas 9030 ewiro o2opwoep Expected: aasasasas 9030 31wwo weopwoep weerasas 9031... (2 Replies)
Discussion started by: baris35
2 Replies

2. Shell Programming and Scripting

sed print from last occurrence match until the end of last occurrence match

Hi, i have file file.txt with data like: START 03:11:30 a 03:11:40 b END START 03:13:30 eee 03:13:35 fff END jjjjjjjjjjjjjjjjjjjjj START 03:14:30 eee 03:15:30 fff END ggggggggggg iiiiiiiiiiiiiiiiiiiiiiiii I want the below output START (13 Replies)
Discussion started by: Jyotshna
13 Replies

3. AIX

Replace consecutive occurrence of string in same line

Hi All, I have a requirement to replace consecutive occurence of same string nedd to be replaced. Below is the input and desired output. Input: --------- 123.5|ABC|.|.|. 234.4|DEF|.|.|.|.|.| Output: --------- 123.5|ABC|||. 234.4|DEF||||| so basically "|.|" need to be replaced with... (9 Replies)
Discussion started by: ureddy
9 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Replace first occurrence after match

hey guys, i have been trying to work this thing out with sed with no luck :confused: i m looking for a way to replace only the first occurrence after a match for example : Cat Realized what you gotta do Dog Realized what you gotta do Sheep Realized what you gotta do Wolf Realized... (6 Replies)
Discussion started by: boaz733
6 Replies

5. UNIX for Dummies Questions & Answers

How to replace particular occurrence of character in between a delimiter?

Hi, Hi, I have a file with following format 1|" "text " around " |" fire "guest"|" " 2| "xyz"" | "no guest"|"3" 3| """ test3""| "one" guest"|"4" My requirement is to replace all occurrences of " to ' which are occurring between |" "|delimiter so my output should look like this 1|"... (3 Replies)
Discussion started by: H_bansal
3 Replies

6. Shell Programming and Scripting

Replace x Number of String Occurrence with Sed

Ok, So I have a huge file that has over 12000 lines in it. in this file, there are 589 occurrences of the string "use five-minute-interval" spread in various areas in the file. How can i replace the the last 250 of the occurrences of "use five-minute-interval" with "use... (10 Replies)
Discussion started by: SkySmart
10 Replies

7. Shell Programming and Scripting

SED to replace exact match, not first occurrence.

Lets say I have file.txt: (Product:Price:QuantityAvailable) (: as delimiter) Chocolate:5:5 Banana:33:3 I am doing a edit/update function. I want to change the Quantity Available, so I tried using the SED command to replace 5, but my Price which is also 5 is changed instead. (for the Banana... (13 Replies)
Discussion started by: andylbh
13 Replies

8. Shell Programming and Scripting

SED replace string by occurrence

hi all, I have a text file with following content PAGENUMBER asasasa asasasa PAGENUMBER sasasasasa PAGENUMBER using sed i want to replace PAGENUMBER by occurrence count eg 1 asasasa asasasa 2 sasasasasa 3 (4 Replies)
Discussion started by: uttamhoode
4 Replies

9. Shell Programming and Scripting

Replace second occurrence only

HPUX /bin/sh (posix) I have a file as such cat dog mouse deer elk rabbit mouse rat pig I would like to replace the second occurrence of mouse in this file with mouse2. The rest of the file has to stay exactly as is. I'm not sure exactly where mouse might be (could be first,second,third... (5 Replies)
Discussion started by: lyoncc
5 Replies

10. UNIX for Dummies Questions & Answers

Search and replace to first occurrence of string

Hi all, I have a very large; delimited file. In vi I would like to replace: CSACT_DY;AVG_UEACT1;uesPerActiveLinkSetSize_1;#;A CSACT_DY;AVG_UEACT2;uesPerActiveLinkSetSize_2;#;A CSACT_DY;AVG_UEACT3;uesPerActiveLinkSetSize_3;#;A with: CSACT_DY;AVG_UEACT1;Average... (7 Replies)
Discussion started by: gilmord
7 Replies
Login or Register to Ask a Question