[Solved] Grep text between patterns using bash [closed]


Sed can do it as follows:

sed -n '/^======/{:a;N;/\n------/!ba;/score +/p}' infile 
======
Ann 
Smith 
score + 
------

where -n prevents printing, and

/^======/ {       # If the pattern space starts with "======"
    :a            # Label to branch to
    N             # Append next line to pattern space
    /\n------/!ba # If we don't match "------", branch to :a
    /score +/p    # If we match "score +", print the pattern space
}

Things could be more properly anchored with /\n------$/, but there are spaces at the end of the lines, and I’m not sure if those are real or copy-paste artefacts – but this work for the example data.

7

solved Grep text between patterns using bash [closed]