Get string between 2 patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get string between 2 patterns
# 8  
Old 09-20-2013
Quote:
Originally Posted by ahamed101
Though my solution is not the cleanest, it works.
Yours is neater than mine and should work for me as well.

Quote:
Check if you have put a comma accidentally in your dat file.
Neither a comma nor a tick.
Code:
$ grep \' test.dat
ok: [20.6.1.1] => {"msg": "[u'/project/cars/version/scripts/', u'/project/cars/version/scripts/y.txt', u'/project/cars/version/scripts/x.txt']"}
$ grep , test.dat
ok: [20.6.1.1] => {"msg": "[u'/project/cars/version/scripts/', u'/project/cars/version/scripts/y.txt', u'/project/cars/version/scripts/x.txt']"}
$ awk -F\' '{print $2}' RS=, test.dat
GATHERING FACTS *****************************
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt
$ cat test.dat
PLAY [SERVER] ***********************************
GATHERING FACTS *****************************
OK: [20.6.1.1]
TASK: [Get name] ****************************
changed: [20.6.1.1]
TASK: [print name] ***************************
ok: [20.6.1.1] => {"msg": "[u'/project/cars/version/scripts/', u'/project/cars/version/scripts/y.txt', u'/project/cars/version/scripts/x.txt']"}
PLAY RECAP ***********************
20.6.1.1  : ok=3  changed=1 unreachable=0 failed=0

A mystery to me. But one i'm willing to ignore for now. 8-)
# 9  
Old 09-20-2013
Did my solution in post #3 works?
If so, why not use it.
# 10  
Old 09-20-2013
sed:
Code:
sed -n ":a s/^[^u]*u'//; T;h; s/'.*$//p; g; ta" file
/project/cars/version/scripts/
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

# 11  
Old 09-20-2013
An other sed version:
Code:
sed -n "s/[^u]*u'\([^']*\)['][^u]*/\1\n/gp" file

Regards.
# 12  
Old 09-22-2013
Hi all, thanks for your invaluable inputs. Works beautifully.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

String search between patterns using sed

Hi, I am trying to find a way to get sed/awk/grep to help me find a string in a log file that exists between two datestamps and then print the preceding datestamp up to the next datestamp. Here is an example of my logfile: +++ 2013/03/28 17:01:37.085 SIGNALING HIGH ACTIVE Failure Response... (5 Replies)
Discussion started by: raytx
5 Replies

2. Shell Programming and Scripting

Fetching the string using different patterns

HI, Please help me with the following problem: I have an xml file with the following lines <NameValuePair> <name>SharedResources/JDBC/Admin/password</name> <value>rjmadmin</value> </NameValuePair> <NameValuePair> ... (4 Replies)
Discussion started by: tejastrikez
4 Replies

3. Shell Programming and Scripting

Getting a string from between two patterns

I need something to strip out some text from a string. I basically have a variable that will always be in the same pattern but will be a different length. Example below. I need to somehow extract the text between <Strat> and </Source> from example below. I can't load it into a file for audit... (5 Replies)
Discussion started by: atelford
5 Replies

4. Shell Programming and Scripting

parsing filename and grabbing specific string patterns

Hi guys...Wow I just composed a huge post and it got erased as I was logged out automatically Anyways I hope someone can help me out here. So the task I'm working on is like this I have a bunch of files that I care about sitting in a directory say $HOME/files Now my job is to go and loop... (6 Replies)
Discussion started by: rukasetsuna
6 Replies

5. UNIX for Dummies Questions & Answers

replace multiple patterns in a string/filename

This should be somewhat simple, but I need some help with this one. I have a bunch of files with tags on the end like so... Filename {tag1}.ext Filename2 {tag1} {tag2}.ext I want to hold in a variable just the filename with all the " {tag}" removed. The tag can be anything so I'm looking... (4 Replies)
Discussion started by: kerppz
4 Replies

6. Shell Programming and Scripting

need help in string patterns

Hi, i have following lines of code which is properly working. CAT1="${InputFile}CAT_*0?????" CAT2="${InputFile}CAT_*0?????" CountRecords(){ integer i=1 while ]; do print P$i `nawk 'END {print NR}' $1 ` >> ${OutputPath}result.txt & i=i+1 shift done } CountRecords "$CAT1"... (8 Replies)
Discussion started by: malikshahid85
8 Replies

7. Shell Programming and Scripting

need help in string patterns

Hi, i have a directory /u02.i have 2 files in it like abc1.gz abc2.gz i want to store file pattern in a variable like f1="abc?" i don't want to take .gz in variable rather i want .gz appended when i need to unzip the file like gunzip $f1 Can you please help me how to... (3 Replies)
Discussion started by: malikshahid85
3 Replies

8. Shell Programming and Scripting

To extract the string between two patterns

Sample input: Loading File System Networking in nature Closing the System now i need to extract the patterns between the words File and Closing: i.e. sample output: System Networking in Nature Thanks in advance !!!!!!!!!!!!!!!!! (6 Replies)
Discussion started by: aajan
6 Replies

9. UNIX for Dummies Questions & Answers

Counting patterns in a shell string

Hello, I am writing a shell script and I need to find a way to count the number of whitespaces in a string. Eg: NAME="Bob Hope" I am looking for a way to count the number of whitespaces in this string. So a command that would take this string and return 1. Or take "First Middle Last"... (3 Replies)
Discussion started by: kevin80
3 Replies
Login or Register to Ask a Question