Get string between 2 patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get string between 2 patterns
# 1  
Old 09-20-2013
Get string between 2 patterns

Hi all, I wish to get the string between u' and '

This is the test.txt file:
Code:
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

The output that I want is:
Code:
/project/cars/version/scripts/
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

The above strings that I want are between " u' " and " ' ".

I have researched and tried many of the suggested method but fail.
One of those: sed 's/.*u' //' | sed 's/'.*$//'

Can anyone help me?

Thank you!

Last edited by vbe; 09-20-2013 at 05:19 AM.. Reason: code tags
# 2  
Old 09-20-2013
Done with bash.

Code:
grep "'" test.dat | cut -d \' -f2
grep "'" test.dat | cut -d \' -f4
grep "'" test.dat | cut -d \' -f6

You could also do
Code:
grep "'" test.dat | cut -s -d \' -f2,4,6

in a single line but you would have to separate the substrings.

Suprisingly the onliner does result in
Code:
/project/cars/version/scripts/'/project/cars/version/scripts/y.txt'/project/cars/version/scripts/x.txt

with ticks (') that i would not have expected there....

Last edited by MDominok; 09-20-2013 at 06:15 AM.. Reason: Added shell. Added onliner.
# 3  
Old 09-20-2013
Using awk
Code:
awk 'NR%2==0' RS=\' file
/project/cars/version/scripts/
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

This User Gave Thanks to Jotne For This Post:
# 4  
Old 09-20-2013
Code:
awk -F\' '{print $2}' RS=, infile

-ahamed
# 5  
Old 09-20-2013
Quote:
Originally Posted by ahamed101
Code:
awk -F\' '{print $2}' RS=, infile

-ahamed
Gives me, on bash :
Code:
$ awk -F\' '{print $2}' RS=, test.dat
GATHERING FACTS *****************************
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

# 6  
Old 09-20-2013
Hi,
You can try (work with grep that supported -P option (regex engine perl):
Code:
grep -P -o "u[']\K[^']*" file

Regards.
# 7  
Old 09-20-2013
Quote:
Originally Posted by MDominok
Gives me, on bash :
Code:
$ awk -F\' '{print $2}' RS=, test.dat
GATHERING FACTS *****************************
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

Though my solution is not the cleanest, it works.
Check if you have put a comma accidentally in your dat file.

Code:
-bash-3.2$ awk -F\' '{print $2}' RS=, infile
/project/cars/version/scripts/
/project/cars/version/scripts/y.txt
/project/cars/version/scripts/x.txt

--ahamed
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