Visit Our UNIX and Linux User Community

How can I get the lines between two patterns?

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How can I get the lines between two patterns?
# 1  
Old 10-13-2009
How can I get the lines between two patterns?


I have the following file


I want to get the lines from hello to the first bye inclusive into another file?

how can I do this


Last edited by vgersh99; 10-13-2009 at 03:26 PM.. Reason: code tags, PLEASE!
# 2  
Old 10-13-2009
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)

Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums

---------- Post updated at 02:28 PM ---------- Previous update was at 02:26 PM ----------

sed -n '/hello/,/bye/p' myFile

# 3  
Old 10-13-2009
Don't do it youngster, learn a bit of awk, it will give your life new meaning Smilie

nawk '/bye/{print;exit} /hello/{p=1}p' infile > another.file

# 4  
Old 10-19-2009
Originally Posted by steadyonabix
Don't do it youngster, learn a bit of awk, it will give your life new meaning Smilie

nawk '/bye/{print;exit} /hello/{p=1}p' infile > another.file

thanks, that worked perfectly
# 5  
Old 01-05-2010
HI Can u please tell if i pass the ,

start and end patterns as arguments i mean

nawk '/$end_Pattern/{print;exit} /$start_Pattern/{p=1}p' infile > another.file

where end_Pattern=bye

but the above is not working good
# 6  
Old 01-05-2010

You're trying to use shell variables inside awk, which doesn't work.

Either use something like:

awk '/'$start_pattern'/,/'$end_pattern'/' infile

or (taking the steadyonabix example)

awk -v S=$start_pattern -v E=$end_pattern '$0 ~ E {print;exit} $0 ~ S{p=1}p' infile > another.file

# 7  
Old 01-05-2010
Thaks @scott

The First Command giving the lines along with the start_pattern and end_pattern.Smilie
can u please tell me the exact command to output the lines only between the pattern's.

Previous Thread | Next Thread
Test Your Knowledge in Computers #384
Difficulty: Medium
The Unix df command reports damaged disk space on file systems.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to print lines from a files with specific start and end patterns and pick only the last lines?

Hi, I need to print lines which are matching with start pattern "SELECT" and END PATTERN ";" and only select the last "select" statement including the ";" . I have attached sample input file and the desired input should be as: INPUT FORMAT: SELECT ABCD, DEFGH, DFGHJ, JKLMN, AXCVB,... (5 Replies)
Discussion started by: nani2019
5 Replies

2. UNIX for Beginners Questions & Answers

Delete multiple lines between blank lines containing two patterns

Hi all, I'm looking for a way (sed or awk) to delete multiple lines between blank lines containing two patterns ex: user: alpha parameter_1 = 15 parameter_2 = 1 parameter_3 = 0 user: alpha parameter_1 = 15 parameter_2 = 1 parameter_3 = 0 user: alpha parameter_1 = 16... (3 Replies)
Discussion started by: ce9888
3 Replies

3. Shell Programming and Scripting

Search for patterns on different lines

im using the following code to search a log for entries on two different lines: awk 'BEGIN{count=0} /'"${firstpattern}"'/,/'"${secondpattern}"'/ { print; if ($0 ~ /'"${thirdpattern}"'/){count++}; } END { print count }' data.txt firstpattern="start error log" secondpattern="i am logging the... (1 Reply)
Discussion started by: SkySmart
1 Replies

4. 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

5. Shell Programming and Scripting

How to print only lines in between patterns?

Hi, I want to print only lines (green-italic lines) in between first and last strings in column 9. there are different number of lines between each strings. 10 AUGUSTUS exon 4558 4669 . - . 10.g1 10 AUGUSTUS exon 8771 8889 . ... (6 Replies)
Discussion started by: jamo
6 Replies

6. Shell Programming and Scripting

Need to print between patterns AND a few lines before

I need to print out sections (varying numbers of lines) of a file between patterns. That alone is easy enough: sed -n '/START/,/STOP/' I also need the 3 lines BEFORE the start pattern. That alone is easy enough: grep -B3 START But I can't seem to combine the two so that I get everything between the... (2 Replies)
Discussion started by: Finja
2 Replies

7. Shell Programming and Scripting

Deleting lines above the patterns

I want to delete 1 line above the paatern and 3 line below the pattern and the pattern line itself, on the whole 5 lines. If there are three patterns what to do and the final text file to be captured in a new file. (3 Replies)
Discussion started by: razen
3 Replies

8. Shell Programming and Scripting

Searching patterns in 1 file and deleting all lines with those patterns in 2nd file

Hi Gurus, I have a file say for ex. file1 which has 3500 lines in it which are different account numbers and another file (file2) which has 230000 lines in it. I want to read all the lines in file1 and delete all those lines from file2 which has that same pattern as in file1. I am not quite... (4 Replies)
Discussion started by: toms
4 Replies

9. Shell Programming and Scripting

Grep All lines between 2 different patterns

I need a simple script to get all lines between 2 Patterns, e.g. ............. ............. 114456723: testing Script Alpha Beta 114459234: testing Done ............. ............. It should give all the lines in between 114456723 and 114459234, including these as well. Any... (2 Replies)
Discussion started by: gurpreet470
2 Replies

10. Shell Programming and Scripting

How to get lines in between Patterns?

Hi, I need to create a script that does the following: 1. Read the file for the occurrences of "EXECUTE" and "END" strings. There will be several occurrences of EXECUTE and END strings on the file. 2. The resulting lines in #1, needs to be searched for the word... (11 Replies)
Discussion started by: racbern
11 Replies

Featured Tech Videos