Если вы уверены, что файл достаточно мал для удобного размещения в памяти, вы можете просто поместить его в переменную и применить к нему регулярное выражение:
$ perl -0777 -ne 'print $-[0], "\n" while /c\nb/g' foo.txt
В противном случае:
$ perl -ne 'print $n - 2, "\n" if /^b/ && $last =~ /c$/; $last = $_; $n += length' foo.txt
Обратите внимание, что эти решения зависят от входного файла, содержащего только символы ASCII.