Extract a string from another string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract a string from another string
# 1  
Old 06-21-2016
Extract a string from another string

hi,
i have this string:
Code:
<TD CLASS="xxxxxxxx" data-sort-value="xxx999" TITLE="xxxxxxxxxxxx">xxxxxxxxxxxxx</TD>

this string has diffrent value ech time, i want to store just the value of "data-sort-value" in this exemple is xxx999

can someone help me on this SmilieSmilieSmilieSmilie
# 2  
Old 06-21-2016
How big is this problem?

Do you have this one exact line to deal with and nothing else, or a load of other XML to manage i.e. picking it specifically out of a file etc?
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 06-21-2016
Pipe it to
Code:
sed -n 's#^.*data-sort-value="\([^"]*\)".*$#\1#p'

If you have the string in a shell variable, then
Code:
echo "$string" | sed ...

can be smart-replaced with
Code:
expr x"$string" : x'.*data-sort-value="\([^"]*\)"'


Last edited by MadeInGermany; 06-22-2016 at 02:34 PM.. Reason: Added a ^ at the RE beginning and a $ at the end - it speeds up sed
This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 06-21-2016
Quote:
Originally Posted by MadeInGermany
Pipe it to
Code:
sed -n 's#.*data-sort-value="\([^"]*\)".*#\1#p'

If you have the string in a shell variable, then
Code:
echo "$string" | sed ...

can be smart-replaced with
Code:
expr x"$string" : x'.*data-sort-value="\([^"]*\)"'


thank you very much sir that s work,
please can you explain me the code i want to use it on
Code:
<TD CLASS="usercol3">00:12:25<BR></TD>

to extract th time Smilie
# 5  
Old 06-22-2016
Quote:
Originally Posted by extra93
thank you very much sir that s work,
please can you explain me the code i want to use it on
Code:
<TD CLASS="usercol3">00:12:25<BR></TD>

to extract th time Smilie
A possibility for general purposes:
Code:
perl -nle '/(\d+:\d+:\d+)/ and print $1' extra93.file
00:12:25

Or if it needs to be specific to the usercol3 class
Code:
perl -nle '/usercol3">(\d+:\d+:\d+)/ and print $1' extra93.file
00:12:25

A less precise alternative sed version:
Code:
sed -n 's/^.*usercol3">\([^<]*\).*$/\1/p' extra93.file
00:12:25


Last edited by Aia; 06-22-2016 at 01:48 AM..
This User Gave Thanks to Aia For This Post:
# 6  
Old 06-22-2016
Quote:
Originally Posted by Aia
A possibility for general purposes:
Code:
perl -nle '/(\d+:\d+:\d+)/ and print $1' extra93.file
00:12:25

Or if it needs to be specific to the usercol3 class
Code:
perl -nle '/usercol3">(\d+:\d+:\d+)/ and print $1' extra93.file
00:12:25

A less precise alternative sed version:
Code:
sed -n 's/^.*usercol3">\([^<]*\).*$/\1/p' extra93.file
00:12:25

thank you friend it realy help, but i mean for exemple this
Code:
\([^<]*\)

i want to undestand the fonctioning of the code but thank you one more time Smilie
# 7  
Old 06-22-2016
Quote:
Originally Posted by extra93
thank you friend it realy help, but i mean for exemple this
Code:
\([^<]*\)

i want to undestand the fonctioning of the code but thank you one more time Smilie
If you want to know more, search for regular expression character classes or character set and negated character class

Some characters inside a square bracket means, means match one time either of those characters.
[abc] match either an a or a b or a c one time
[abc]* with an * will match many times
[^abc] with an ^ in front, will match any character that is NOT an a or a b or a c one time.
[^abc]* with an * means, keep matching anything as long as it is NOT an a a b or a c

\([^<]*\) continue to match any characters until it match a <. The < will not be included. \( \) will save what it got matched and \1 will display it for you.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to extract every repeated string between two specific string?

Hello guys, I have problem with hpux shell script. I have one big text file that contains like SOH bla bla bla bla bla bla ETX SOH bla bla bla ETX SOH bla bla bla ETX What I need to do is save first SOH*BLA into file1.txt, save second SOH*BLA into file2.txt and so on.... (17 Replies)
Discussion started by: sembii
17 Replies

2. Shell Programming and Scripting

To Search for a string and to extract the string from the text

Hi Team I have an huge xml where i need to search for a ceratin numbers. For example 2014-05-06 15:15:41,498 INFO WebContainer : 10 CommonServicesLogs - CleansingTriggerService.invokeCleansingService Entered PUBSUB NOTIFY MESSAGE () - <?xml version="1.0" encoding="UTF-8"... (5 Replies)
Discussion started by: Kannannair
5 Replies

3. Shell Programming and Scripting

Search String and extract few lines under the searched string

Need Assistance in shell programming... I have a huge file which has multiple stations and i wanted to search particular station and extract few lines from it and the rest is not needed Bold letters are the stations . The whole file has multiple stations . Below example i wanted to search... (4 Replies)
Discussion started by: ajayram_arya
4 Replies

4. Shell Programming and Scripting

Extract a string between 2 ref string from a file

Hi, May i ask if someone share some command for extracting a string between 2 ref string in a txt file My objective: i had a file with multiple lines and wants only to extract the string "watch?v=IbkAXOmEHpY" or "watch?v=<11 random character>", when i used "grep 'watch?=*' i got a results per... (4 Replies)
Discussion started by: jao_madn
4 Replies

5. Shell Programming and Scripting

to extract string from main string and string comparison

continuing from my previous post, whose link is given below as a reference https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569 consider there is create table commands in a file for eg: CREATE TABLE `Blahblahblah` ( `id` int(11) NOT NULL... (2 Replies)
Discussion started by: vivek d r
2 Replies

6. Shell Programming and Scripting

extract a string within a string using a pattern

hi all, i have a file name using the following pattern: PREFIX: AR SOURCE: LEGACY DATETIME: YYYYMMDD_HH24MISS SUFFIX: .txt sample filename: AR_LEGACY_20101104_105500.txt i want to extract the source which is LEGACY in this case. how do i do this using shell? thanks. (4 Replies)
Discussion started by: adshocker
4 Replies

7. Shell Programming and Scripting

Search for string in a file and extract another string to a variable

Hi, guys. I have one question: I need to search for a string in a file, and then extract another string from the file and assign it to a variable. For example: the contents of the file (group) is below: ... ftp:x:23: mail:x:34 ... testing:x:2001 sales:x:2002 development:x:2003 ...... (6 Replies)
Discussion started by: daikeyang
6 Replies

8. Shell Programming and Scripting

extract a string from main string

i need a shell program,to extract a string from a main string. main string is "madhu" sub string is "mad"..means any word from the main string please di this (1 Reply)
Discussion started by: madhu.it
1 Replies

9. Shell Programming and Scripting

extract a sub string from a main string

i need a shell program to extract a substring from a main string.. for eg:- main string is madhu.. sub string is mad o/p:- be mad. try to solve this one (5 Replies)
Discussion started by: madhu.it
5 Replies

10. UNIX for Dummies Questions & Answers

How to extract a portion of a string from the whole string

How to extract a portion of a string from a full string using unix. For example: Say source string is = "req92374923.log" I want only the numeric portion of the string say "92374923" how to do that in Unix. (2 Replies)
Discussion started by: ds_sastry
2 Replies
Login or Register to Ask a Question