Простоеsedрешение:
sed -z 's/\[[^]]*\]\n\n\n*//g' file
-z
-обрабатывать ввод как набор строк, каждая из которых заканчивается нулевым байтом (символ ASCII ‘NUL’ )вместо новой строки Или более сложноеawkрешение:
awk '/\[.+\]/{ r=$0; rn=NR; c=0; next }rn && NR-rn==++c{
if(NF) { if(NR-ern!=1) print r; rn=0 } else { ern=NR; next }
}1' file
Выход:
line 1
random words
[GROUP 1]
example 1
example 2
example 3
[TITLE 2]
line 2
line 3
random text...