#!/bin/bash # find-splitpara.sh # Finds split paragraphs in a text file, #+ and tags the line numbers. ARGCOUNT=1 # Expect one arg. OFF=0 # Flag states. ON=1 E_WRONGARGS=85 file="$1" # Target filename. lineno=1 # Line number. Start at 1. Flag=$OFF # Blank line flag. if [ $# -ne "$ARGCOUNT" ] then echo "Usage: `basename $0` FILENAME" exit $E_WRONGARGS fi file_read () # Scan file for pattern, then print line. { while read line do if [[ "$line" =~ ^[a-z] && $Flag -eq $ON ]] then # Line begins with lowercase character, following blank line. echo -n "$lineno:: " echo "$line" fi if [[ "$line" =~ ^$ ]] then # If blank line, Flag=$ON #+ set flag. else Flag=$OFF fi ((lineno++)) done } < $file # Redirect file into function's stdin. file_read exit $? # ---------------------------------------------------------------- This is line one of an example paragraph, bla, bla, bla. This is line two, and line three should follow on next line, but there is a blank line separating the two parts of the paragraph. # ---------------------------------------------------------------- Running this script on a file containing the above paragraph yields: 4:: there is a blank line separating the two parts of the paragraph. There will be additional output for all the other split paragraphs in the target file.