To extract the string between two patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting To extract the string between two patterns
# 1  
Old 09-13-2007
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 !!!!!!!!!!!!!!!!!
# 2  
Old 09-13-2007
One inelegant solution

This is a bit clumsy but it seems to do what you want...

cat <file> | sed 's/.*File //' | sed 's/Closing.*$//'
# 3  
Old 09-13-2007
Quote:
Originally Posted by ajcannon
This is a bit clumsy but it seems to do what you want...

cat <file> | sed 's/.*File //' | sed 's/Closing.*$//'
yes indeed. you don't need the cat, and you can just use one sed command. Not very good with sed, but just an example.
Code:
sed -e 's/.*File //' -e 's/Closing.*$//' file

# 4  
Old 09-14-2007
Thanks Guys !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

but if suppose i have an input like this:


Unix Shell scripting

Java Framework

Network Administrator


Perl Shell scripting


now i need to extract the patterns between "Java" and "Administrator"

so that my output should be

Framework

Network
# 5  
Old 09-14-2007
one way
Code:
awk '/Java/{flag=1;}
    /Administrator/{print ;flag=0}
    flag { print }' "file"

i leave it to you to try remove "Java" and "Administrator"
# 6  
Old 09-14-2007
U can also use sed:
Code:
sed -n "/Java/,/Administrator/p" file

# 7  
Old 09-17-2007
Hi

Hi, you can try this one alsoSmilie.

Code:
awk 'BEGIN{f=0}
{
if (index($0,"File")!=0)
f=1
if (index($0,"Closing")!=0)
f=0
if (f==1)
{
if (index($0,"File")!=0)
printf("%s\n", substr($0,index($0,"File")+4,length($0)-index($0,"File")-3))
else
print
}
}' a

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Awk/sed command to extract the string between 2 patterns but having some particular value

Hi - i have one file with content as below. ***** BEGIN 123 ***** BASH is awesome ***** END ***** ***** BEGIN 365 ***** KSH is awesome ***** END ***** ***** BEGIN 157 ***** KSH is awesome ***** END ***** ***** BEGIN 7123 ***** C is awesome ***** END ***** I am trying to find all... (4 Replies)
Discussion started by: reldb
4 Replies

2. Shell Programming and Scripting

Extract lines between patterns

I have a list in the format below, how do I read through the list and extract the lines between the ##START## and ##END##, so i can check for specific values between each ##START## & ##END## pattern ##START## RANDOMTEXT DFGSD SDFSDF ##END## ##START## morestuff sdfggfg sdfsdf... (10 Replies)
Discussion started by: squrcles
10 Replies

3. Debian

Extract Lines Between 2 patterns if exist...

Hello. I am not having luck with sed or awk today. $ echo "$BrackListFinal" DSCF3649-DSCF3651_Brkt DSCF3649.JPG 2014-07-21 13:34:44 On 1 DSCF3649.RAF 2014-07-21 13:34:44 On 1 DSCF3650.JPG 2014-07-21 13:34:45 On 2 DSCF3650.RAF 2014-07-21 13:34:45 On 2... (3 Replies)
Discussion started by: DSommers
3 Replies

4. Shell Programming and Scripting

Extract all the lines in between of 2 patterns and merge them

Hi, I have a file with many lines and need to extract lines between 2 patterns (AAA and BBB) and merge all the in-between lines into single line separated by space. $ cat file1 blah blah blah blah AAA 1 2 3 blah BBB blah blah blah blah blah blah blah blah blah AAA 5 6 blah blah... (4 Replies)
Discussion started by: prvnrk
4 Replies

5. Shell Programming and Scripting

Need to extract text repetitively between two patterns

Hi All, I want to extract the text between some pattern which occurs repeatedly in a file. For example my input is like, /home/..... ..........java:25: cannot find symbol ............ /home/...... /home/....... I want to display... (2 Replies)
Discussion started by: Vignesh58
2 Replies

6. Shell Programming and Scripting

Extract line between two patterns

Hi All, I need a script to extract a lines between two patterns.I have done this using grep,cut,tail and head.But its very slow, because my input file contain more than a lakh. COMMAND:XXXXXXXXXXXXXXXXXXXX yyyyy zzzzzz REQUESTSTRING:aaaaaaaaaaaaaaa;11111 222222 333333... (4 Replies)
Discussion started by: rajamohan
4 Replies

7. UNIX for Dummies Questions & Answers

Search and extract matching patterns

%%%%% (9 Replies)
Discussion started by: lucasvs
9 Replies

8. Shell Programming and Scripting

PERL: extract lines between two patterns

Hello Perl-experts, I am new to perl and need help to solve a problem. I have a table in below format. <Text A> <Pattern1> A Value B Value C Value D Value <Pattern2> <Text B> This table is in file1. I want to extract lines between Pattern1 and Pattern2 and write it into file2.... (11 Replies)
Discussion started by: mnithink
11 Replies

9. Shell Programming and Scripting

Extract patterns and copy them in different files

Hi All, I have a file which looks like this: Name1;A01 Name2;A01.047 Name3;A01.047.025 Newname1;B01 NewName2;B01.056.32 NewName3;B04.09.43 NewNewName1;C01.03 NewNewName2;C01.034.44As you can see, in the file there is some name and followed by the name is some identifier. These... (5 Replies)
Discussion started by: shoaibjameel123
5 Replies

10. Shell Programming and Scripting

Extract certain patterns from file.

Hi All, I tried extracting this pattern using grep but it did not work. What I have is a file which has contents like this: file:///channel/add-adhd.html file:///channel/allergies.html file:///channel/arthritis.html http://mail.yahoo.com/ http://messenger.yahoo.com/... (2 Replies)
Discussion started by: shoaibjameel123
2 Replies
Login or Register to Ask a Question