By Alvin Alexander. Last updated: January 5, 2021
I just wrote this awk script to extract all of the Scala source code examples out of a Markdown file. It can easily be converted to extract all of the source code examples out of an Asciidoc file, which is something else I will do with it eventually.
Here’s the awk script:
BEGIN {
# awk doesn’t have true/false variables, so
# create our own, and initialize our variable.
true = 1
false = 0
printLine = false
}
{
# look for ```scala to start a block and ``` to stop a block.
# `[:space:]*` that is used below means “zero or more spaces”.
if ($0 ~ /^```scala/) {
printLine = true
print ""
} else if ($0 ~ /^```[:space:]*$/) {
# if printLine was true, we were in a ```scala block,
# so print the end matter, then make printLine false
# so printing will stop
if (printLine == true) {
print "```"
}
printLine = false
}
if (printLine) print $0
}