Для файлов не имеет значения, если ваша программа sed останавливается рано; для ввода по каналу некоторые программы расстраиваются, если вы останавливаетесь рано. Для тех, кого вы должны удалить из комментария и далее:
sed '/^!--- comment ---!$/,$d' somefile.txt
Если вы действительно должны использовать bash, а не инструменты оболочки, такие как sed, то:
x=1
while read line
do
if [ "$line" = "!--- comment ---!" ]
then x=0 # Or break
elif [ $x = 1 ]
then echo "$line"
fi
done < somefile.txt
Этот код также будет работать с оболочками Bourne и Korn, и я ожидаю, что он будет работать практически с любой оболочкой, унаследованной от оболочки Bourne (например, с любой POSIX-совместимой оболочкой).