Need help with sed to match and replace a string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with sed to match and replace a string
# 1  
Old 12-01-2014
Need help with sed to match and replace a string

friends I am struck in a situation where I need to comment a line start with space as below in a file

Code:
      root@LOCALHOST * rw
          LOCALHOST* r

I should comment second line only

Any help please

Last edited by Corona688; 12-01-2014 at 01:49 PM..
# 2  
Old 12-01-2014
Hello mallak,

Not sure as you haven't given any complete condition, following may help you(not tested though).

Code:
awk '/^ / {$0="#"$0} 1'  Input_file

Thanks,
R. Singh

Last edited by RavinderSingh13; 12-01-2014 at 02:13 PM.. Reason: Edited text
# 3  
Old 12-01-2014
Ravinder

Thanks for your response. I didn't got the expected result.

This is what I am trying to achieve

I have a file with many lines and among them Above are two lines.

Out of which I need to write a single liner so I can comment one line
# 4  
Old 12-01-2014
Please tell us the conditions to apply. Should it be the second line having LOCALHOST in it? The one with 9 spaces in front? The one without "root"? without "@"? "rw"?
How can we identify THAT line amongst the "many lines"?
# 5  
Old 12-01-2014
Thanks for the response

I could see the condition as a

Code:
[space]LOCALHOST[space]*[space]r

Replace it with

Code:
#LOCALHOST[space]*[space]r


Last edited by Scrutinizer; 12-01-2014 at 06:44 PM.. Reason: code tags
# 6  
Old 12-01-2014
This one allows leading whitespace (spaces or tabs).
$1 (the first field in the line) must begin with LOCALHOST.
Code:
awk '$1~/^LOCALHOST/ {$0="#"$0} {print}'

---------- Post updated at 03:00 PM ---------- Previous update was at 02:52 PM ----------

Some versions of sed can recognize character classes, then you can do
Code:
sed 's/^[[:space:]]*LOCALHOST/#&/'

# 7  
Old 12-01-2014
Quote:
Originally Posted by mallak
Thanks for the response

I could see the condition as a

[space]LOCALHOST[space]*[space]r

Replace it with

#LOCALHOST[space]*[space]r
This translates to e.g.
Code:
awk '/^ *LOCALHOST \* r$/ {sub(/^ */,"#"} 1' file

Sure that's what you want?

EDIT: It wouldn't work on your sample above for two reasons: a) no space after LOCALHOST b) <CR> chars as line terminators
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

2. Shell Programming and Scripting

Replace a string on specific lines which match a pattren

Hi Experts, I have a file which contains a pattern multiple times i.e. matchthispattren. If a line is matched with this pattern. I want a number in 1234567890 to 123456789 in that line. (Basically remove the last digit from that number. Please help. Thanks, Varun (1 Reply)
Discussion started by: varun22486
1 Replies

3. Shell Programming and Scripting

sed : replace Nth match in a file

I have a situation where a file "config.txt" looks like this Servername: OS: Serername: OS: Servername: OS: .... .... ... Servername: OS: looking for the sed syntax to replace the "Nth" occurrence of Servername (i would apply the same logic to OS as well), want to replace the Nth... (4 Replies)
Discussion started by: alldbest
4 Replies

4. Shell Programming and Scripting

Replace second match+awk/sed

I have a text file that looks like this: ----------------------------------------- sta WP00 time 10/23/2013 20:10:17 sensor trillium_240_2 0 583 add close sensor trillium_240_2 10/23/2013 20:10:17 sensor trillium_120 0 279 add close sensor trillium_120 10/23/2013 20:10:35... (11 Replies)
Discussion started by: klane
11 Replies

5. Shell Programming and Scripting

sed Character match and replace

Hello All I am struck in the issue which I want to share with all of you. What I am trying to do is For every line in a file I have to replace a particular character from the given character in a file For Example Suppose the data is 1111x2222 1111x2222 2222y3333 1111x2222 I... (4 Replies)
Discussion started by: adisky123
4 Replies

6. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

7. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

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

9. Shell Programming and Scripting

Match pattern and replace with string

hi guys, insert into /*<new>*/abc_db.tbl_name this is should be replaced to insert into /*<new>*/${new}.tbl_name it should use '.' as delimiter and replace is there any way to do it using sed (6 Replies)
Discussion started by: sol_nov
6 Replies

10. Shell Programming and Scripting

Sed scripting, match text within line and replace

New to sed... Have a file foo.txt (below). Need to replace text on 2 lines, but can only feed sed the first few characters of each line (all lines are unique). So, in my example, I have put '$' in place of what I need to figure out how to feed the whole line. What I have thus far: sed -e... (6 Replies)
Discussion started by: boolean2222
6 Replies
Login or Register to Ask a Question