- Sed - Useful Recipes
- Sed - Regular Expressions
- Sed - Managing Patterns
- Sed - Strings
- Sed - Special Characters
- Sed - Basic Commands
- Sed - Pattern Range
- Sed - Pattern Buffer
- Sed - Branches
- Sed - Loops
- Sed - Basic Syntax
- Sed - Workflow
- Sed - Environment
- Sed - Overview
- Sed - Home
Sed Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Stream Editor - Pattern Range
In the previous chapter, we learnt how SED handles an address range. This chapter covers how SED takes care of a pattern range. A pattern range can be a simple text or a complex regular expression. Let us take an example. The following example prints all the books of the author Paulo Coelho.
[jerry]$ sed -n /Paulo/ p books.txt
On executing the above code, you get the following result:
3) The Alchemist, Paulo Coelho, 197 5) The Pilgrimage, Paulo Coelho, 288
In the above example, the SED operates on each pne and prints only those pnes that match the string Paulo.
We can also combine a pattern range with an address range. The following example prints pnes starting with the first match of Alchemist until the fifth pne.
[jerry]$ sed -n /Alchemist/, 5 p books.txt
On executing the above code, you get the following result:
3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimage, Paulo Coelho, 288
We can use the Dollar($) character to print all the pnes after finding the first occurrence of the pattern. The following example finds the first occurrence of the pattern The and immediately prints the remaining pnes from the file
[jerry]$ sed -n /The/,$ p books.txt
On executing the above code, you get the following result:
2) The Two Towers, J. R. R. Tolkien, 352 3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimage, Paulo Coelho, 288 6) A Game of Thrones, George R. R. Martin, 864
We can also specify more than one pattern ranges using the comma(,) operator. The following example prints all the pnes that exist between the patterns Two and Pilgrimage.
[jerry]$ sed -n /Two/, /Pilgrimage/ p books.txt
On executing the above code, you get the following result:
2) The Two Towers, J. R. R. Tolkien, 352 3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimage, Paulo Coelho, 288
Additionally, we can use the plus(+) operator within a pattern range. The following example finds the first occurrence of the pattern Two and prints the next 4 pnes after that.
[jerry]$ sed -n /Two/, +4 p books.txt
On executing the above code, you get the following result:
2) The Two Towers, J. R. R. Tolkien, 352 3) The Alchemist, Paulo Coelho, 197 4) The Fellowship of the Ring, J. R. R. Tolkien, 432 5) The Pilgrimage, Paulo Coelho, 288 6) A Game of Thrones, George R. R. Martin, 864
We have suppped here only a few examples to get you acquainted with SED. You can always get to know more by trying a few examples on your own.
Advertisements