Adding a backslash in front of square brackets with sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding a backslash in front of square brackets with sed
# 1  
Old 03-04-2013
Adding a backslash in front of square brackets with sed

I'm trying to convert this line:
Code:
[some text]

to

Code:
\[some text\]

with sed.

This is what I have so far:
Code:
sed -e 's/\[\([^]]*\)\]/\\\\\[\1\\\\\]/'

but this still gives me [some text].

Any suggestions?

Last edited by Scrutinizer; 03-04-2013 at 03:53 PM.. Reason: code tags
# 2  
Old 03-04-2013
Like this?
Code:
sed 's/[][]/\\&/g'

And please use code tags when posting code or sample input/output.
These 2 Users Gave Thanks to mirni For This Post:
# 3  
Old 03-04-2013
Try:
Code:
sed 's/[][]/\\&/g'

This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 03-04-2013
Haha... I'd call that a tie Smilie
# 5  
Old 03-04-2013
Works great! Can one of you explain what is happening with the regular expression?
# 6  
Old 03-04-2013
It means replace a character that is either a ] or a [ , ( [][] ) and replace that with a \ ( \\ ) followed by the character that got substituted in the first part ( & ). Repeat that for every such character ( g )

Last edited by Scrutinizer; 03-04-2013 at 05:43 PM..
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 03-04-2013
The outer brackets mean "character class", same as if you do [0-9] or [a-z], the inner brackets are the characters to be matched (any of the two). Ampersand recalls the pattern that was matched (in this case only one char -- one of the brackets).
This User Gave Thanks to mirni For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

IF statement with square brackets

Hi All, Hope you all are doing good. Yesterday in my project i came across a scenario which i can not guess why it was working in one region and why it was not in another region. Please find my issue below. I am using AIX version 6.0 of UNIX in my project, in shell scripting i have the... (1 Reply)
Discussion started by: mad man
1 Replies

2. Shell Programming and Scripting

Problem with occurence of square brackets

Hello all, I have the following problem: $ cat infile this is spam and i need this too this is spam and i need this too $ perl -nwe '$_ =~ /]+ \]+)\]\]*\]? (\+)$/; print "$1 - $2\n";' infile i need this - too i need this - and i need this too I am not sure how many occurences of... (13 Replies)
Discussion started by: zaxxon
13 Replies

3. Shell Programming and Scripting

Grep number between Square [] brackets

I wanted to store the number inside the square bracket between colon( : ) and closing suqre bracket(]) in some variable. Suppose I have lines like : Input file : 20140320 00:08:23.846 INFO 84] - anything in line 20140320 00:08:23.846 Test 589] - Virtual and lab lab anything... (18 Replies)
Discussion started by: nes
18 Replies

4. Shell Programming and Scripting

Compare the value in between square brackets in file

I wanted to compare the value inside the Squre bracket after Colon ( : ) based on any value(seperated by or operator | ) inside the variable Thread and if match found then wnated to store in output file Input file : 20140320 00:08:43.918 INO 35] - Corporate hub is 20140320 00:08:43.918... (2 Replies)
Discussion started by: nes
2 Replies

5. Shell Programming and Scripting

Delete text between square brackets and also delete those square brackets using sed or awk

Hi All, I have a text file which looks like this: computer programming systems engineering I want to get rid of these square brackets and also the text that is inside these brackets. So that my final text file looks like this: computer programming systems engineering I am using... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

6. Shell Programming and Scripting

strip the square brackets from a word using sed or var expansion

Hi, I am trying to strip out leading and trailing brackets from a word. for example, I have a value, in a file. I want to strip out the leading and trailing brackets it and should get the value Running. I am using the following statement but in vain. grep "Workflow run status:" <... (4 Replies)
Discussion started by: svajhala
4 Replies

7. Shell Programming and Scripting

Replacing text between two square brackets

hi guys, i'm writing a script that looks for a unquie id in a file and replaces a string between two square brackets on the same line as the unquie id: ....... ....... 0001 zz 43242 replace this text] name 0002 sd 65466 UK] country ....... ....... how can i find line with id 0001... (6 Replies)
Discussion started by: zaff
6 Replies

8. UNIX for Dummies Questions & Answers

Test command - Two square brackets

Hello, Can someone please explain to me the following line, ] && break I do not understand why two test square brackets are used. Thanks, Shantanu ---------- Post updated at 03:38 PM ---------- Previous update was at 03:35 PM ---------- And, also why there's a $ before (echo $c |... (5 Replies)
Discussion started by: Shan_u2005
5 Replies

9. Shell Programming and Scripting

WHy the double square brackets?

One of the senior administrators gave me a shell script to modify and it begins as follows: if ] && ] {more code follows} Why the double square brackets? (10 Replies)
Discussion started by: mojoman
10 Replies

10. UNIX for Dummies Questions & Answers

square brackets

I would like to substitute a phrase which contains square brackets. change TO how? Thanks (2 Replies)
Discussion started by: gilead29
2 Replies
Login or Register to Ask a Question