Sponsored Content
Full Discussion: Doubt in SED command
Top Forums UNIX for Advanced & Expert Users Doubt in SED command Post 302168798 by sb008 on Tuesday 19th of February 2008 01:20:11 PM
Old 02-19-2008
Quote:
Originally Posted by gksenthilkumar
PLEASE EXPLANIN ME...
sed 's~\(.*\)\(<name>\)\(.*\)\(</name>\)\(.*\)~\2\3\4~'

this is the format
<start><name>123<\name><addr>BAC<\addr><loc>sfo<\loc></start>
.* zero or more random characters
<name> literally the string
</name> literally the string

Find lines with "<name>" and "</name>", where "<name>" can preceded by any amount of characters, "</name>" can be followed by any amount of characters, and there can be any amount of characters in between "<name>" and "</name>"

\(.....\) whatever is found put in a buffer, subsequent \(.....\) means put in next buffer.

1st \(.*\) will match "<start>" and this string will be placed in buffer 1
\(<name>\) will match "<name>" and this string will be placed in buffer 2
2nd \(.*\) will match "123" and this string will be placed in buffer 3
\(</name>\) will match "</name>" and this string will be placed in buffer 4
\(.*\) will match "<addr>BAC<\addr><loc>sfo<\loc></start>" and this string will be placed in buffer 5.

"~" is used in the sed instead of "/" so the "/" in "</name>" doesnt need to be escaped.

If a line is found which matches the patterns, replace them by what ever is in buffer 2,3 and 4.

So based on the string given:
<start><name>123<\name><addr>BAC<\addr><loc>sfo<\loc></start>

The result of the sed command:
sed 's~\(.*\)\(<name>\)\(.*\)\(</name>\)\(.*\)~\2\3\4~'

will be:
<name>123<\name>

Shorter:
sed 's~.*\(<name>\)\(.*\)\(</name>\).*~\1\2\3~'

With "/" instead of "~":
sed 's/.*\(<name>\)\(.*\)\(<\/name>\).*/\1\2\3/'
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

doubt it sed

Hello.. i want to use variable in sed.. like sed 's/ROOTMAILID/$variable/g' conf.test but its not working.. please help thanks in advance esham (2 Replies)
Discussion started by: esham
2 Replies

2. UNIX for Dummies Questions & Answers

doubt in sed

hi all, i have a variable exported as VAR=ATTRIB then tried with, echo "tt" | sed 's/^/$VAR/' expected result as ttATTRIB but obtained only, $VARtt i could nt get where i am wrong. Thanks. (3 Replies)
Discussion started by: matrixmadhan
3 Replies

3. Shell Programming and Scripting

Basic SED doubt

Hi Friends!! I want to add a / at the end of a number. for example i have CQ65758 /, in this case i want to shift that backspace one space to the left so the my result becomes CQ65758/. How can i do that with sed. Thanks Adi (3 Replies)
Discussion started by: asirohi
3 Replies

4. Shell Programming and Scripting

A sed doubt - need explanation

Hi, The following command works fine for me, but I could not grasp the logic working behind of sed command, it's obscure to me :( :confused: echo "./20080916/core/audioex.amr" | sed "s%\(\)/%\1_%g" o/p: ./20080916_core_audioex.amr Could anyone please explain to me in detail, that how... (6 Replies)
Discussion started by: royalibrahim
6 Replies

5. Shell Programming and Scripting

sed command doubt

i have input files like this SFE_DOC_DATE (SFE_DOC_DATE:UniChar.:): "04/18/20" SFE_PSTNG_DATE (SFE_PSTNG_DATE:UniChar.:): "04/18/20" SFE_CREATEDON (SFE_CREATEDON:UniChar.:): "05/31/20" SFE_CLEAR_DATE (SFE_CLEAR_DATE:UniChar.:): "(NULL)" SFE_CLR_DOC_NO... (3 Replies)
Discussion started by: Gopal_Engg
3 Replies

6. Shell Programming and Scripting

sed doubt...

Hi, i need find and replace a sting with a new variable having value as spaces in between. Eg: set a = "i am variable" set b = "i am second" sed -e 's/find_string/'$a'/g' -e 's/find2_str/'$b'/g' input_file here it is giving error... How to get an varaible, which is... (6 Replies)
Discussion started by: vasanth.vadalur
6 Replies

7. Shell Programming and Scripting

sed doubt in extracting

Hi, Can anyone help me in understanding how the below code works? echo "texxt" | sed 's///' gives output exxt, ideally it should give xxt. as this should remove the chars which is not x. echo 'x_a_b_a_c_a_d' | sed 's/.*\(a\)/\1/' gives output as a_d, which should be 'a' as it's the only... (2 Replies)
Discussion started by: royalibrahim
2 Replies

8. UNIX for Dummies Questions & Answers

sed basic doubt

Hi , what is the equivalent of below awk in sed. awk '$1=="ABC"&&$2=="XYZ" {print $0}' infile Thanks, Shruthi (6 Replies)
Discussion started by: shruthidwh
6 Replies

9. Shell Programming and Scripting

sed q predicate doubt

Hi, Could anyone please explain me what the following command does? sed -ne "/\"$var\"/{=;q}" file (1 Reply)
Discussion started by: royalibrahim
1 Replies

10. UNIX for Dummies Questions & Answers

Doubt in sed

Hi All Can some one explain what does the given two sed commands do :confused: sed "s/\'/\\\'/g" | sed 's/\"/\\\"/g' Please find the sample code i used to find out what this is doing , but it has confused me more :wall: $ cat sri1.txt \ ' " $ sed 's/\"/\\\"/g' sri1.txt \ '... (5 Replies)
Discussion started by: Sri3001
5 Replies
XmTextFindString(3X)													      XmTextFindString(3X)

NAME
XmTextFindString - A Text function that finds the beginning position of a text string SYNOPSIS
#include <Xm/Xm.h> Boolean XmTextFindString (widget, start, string, direction, position) Widget widget; XmTextPosition start; char *string; XmTextDirection direction; XmTextPosition *position; DESCRIPTION
XmTextFindString locates the beginning position of a specified text string. This routine searches forward or backward for the first occur- rence of the string starting from the given start position. If it finds a match, the function returns the position of the first character of the string in position. Specifies the Text widget ID. Specifies the character position from which the search proceeds. This is an integer number of characters from the beginning of the text buffer. The first character position is 0. Specifies the search string. Indicates the search direction. It is relative to the primary direction of the text. The possible values are: The search proceeds toward the end of the text buffer. The search proceeds toward the beginning of the text buffer. Specifies the pointer in which the first charac- ter position of the string match is returned. This is an integer number of characters from the beginning of the buffer. The first charac- ter position is 0. If the function returns False, this value is undefined. For a complete definition of Text and its associated resources, see XmText(3X). RETURN VALUE
Returns True if a string match is found; otherwise, returns False. SEE ALSO
XmText(3X), XmTextFindStringWcs(3X) XmTextFindString(3X)
All times are GMT -4. The time now is 05:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy