find_in_paragraph.sh (719B)
#!/bin/bash
function find_in_paragraph() {
PAT="$1"
FILE="$2"
if [ -z $PAT ]; then
echo "missing pattern"
return 1;
fi
if [ -z $FILE ]; then
echo "missing file"
return 1;
fi
sed -e '/./{H;$!d;}' -e 'x;/'$PAT'/!d;'
#Explanation for the random wanderer looking in here:
#'/./{H;$!d;}' -> append each line to the old space, and keep buffering, but only if the line is NOT blank
#x -> at a blank line (or end of file) swap butter into pattern space
#/'$PAT'/!d -> if $PAT is NOT in the paragraph, then delete the paragraph
#if you want to match more stuff, just keep slapping more patterns into it -> 'x;/'$PAT'/!d;/'$PAT2'/!d;' etc.
}