Today I Learned
Search…
Print lines between 2 words
Posted on 24 Aug 2020
You may arrive in a situation where you may want to "extract" out text between two words. For example to view the latest changelog (where x.x.x is the latest version) in a CHANGELOG.md file.

Using sed

1
sed -n -e '/x.x.x/,/0.1.0/ p' CHANGELOG.md | sed -e '1d;$d'
Copied!
sed -e '1d;$d' removes the first & last line.

Using awk

1
awk '/x.x.x/,/0.1.0/' CHANGELOG.md | awk 'NR>2 {print last} {last=$0}'
Copied!
awk 'NR>2 {print last} {last=$0}' removes the first & last line.
NOTE: NR means which Line number is being processed

Resources

Copy link
Edit on GitHub