Возможно, кто-то все еще время от времени ищет такое решение. Вот один.
Используйте awk, чтобы найти строки, которые нужно удалить. Затем с помощью diff удалите строки и дайте sed убраться.
awk "/^\* \* ProjectName /,/ USA\.$/" input.txt \
| diff - input.txt \
| sed -n -e"s/^> //p" \
>output.txt
Предупреждение: если первый шаблон существует, а второй - нет, вы потеряете весь текст под первым шаблоном - проверьте это сначала.