История изменений
Исправление debugger, (текущая версия) :
Т.е нужно как-то сделать проверку на многострочные строки
Ты хотя бы первую строчку мана на греп прочитал?
NAME
grep - print lines that match patterns
Греп печатает строки, соответствующие критерию. Никаких многострочных сравнений в грепе нет.
С помощью опции -z можно сменить символ конца строки, но концептуально это ничего не меняет — в грепе построчная обработка файла. Если ты сдуру применишь -z к обычному текстовому файлу, то весь файл греп будет считать одной строкой (если в файле нет нуликов, а в текстовых файлах обычно их нет). Соответственно, если будет найдено соответствие, то распечатаются не две строки (в твоём понимании), а весь файл.
Мне, честно говоря, пофиг чем проверять(желательно, чтобы это было в стандартной поставке утилит debian)
Тогда бери перл. Регулярки в перле — лучшие. Кроме того, с помощью опций -p или -n можно забубенить всё в командной строке и не писать скрипт, например:
$ perl -gn -e "print for m{^$line1\n$line2\n}mg;" "$file"
где line1 и line2 — регулярки для первой и второй строк. Вот так может быть более понятно происходящее:
$ perl -gn -e "while ( $_ =~ m{^$line1\n$line2\n}mg ) { print $&; }" "$file"
многострочных строк
И да, в английском «multiline string» имеет смысл. Но то, что ты хочешь — «multiline line», а это хрень несуществующая.
Исходная версия debugger, :
Т.е нужно как-то сделать проверку на многострочные строки
Ты хотя бы первую строчку мана на греп прочитал?
NAME
grep - print lines that match patterns
Греп печатает строки, соответствующие критерию. Никаких многострочных сравнений в грепе нет.
С помощью опции -z можно сменить символ конца строки, но концептуально это ничего не меняет — в грепе построчная обработка файла. Если ты сдуру применишь -z к обычному текстовому файлу, то весь файл греп будет считать одной строкой (если в файле нет нуликов, а в текстовых файлах обычно их нет). Соответственно, если будет найдено соответствие, то распечатаются не две строки (в твоём понимании), а весь файл.
Мне, честно говоря, пофиг чем проверять(желательно, чтобы это было в стандартной поставке утилит debian)
Тогда бери перл. Регулярки в перле — лучшие. Кроме того, с помощью опций -p или -n можно забубенить всё в командной строке и не писать скрипт, например:
$ perl -gn -e "print for m{^$line1\n$line2\n}mg;" "$file"
где line1 и line2 — регулярки для первой и второй строк. Вот так может быть более понятно происходящее:
$ perl -gn -e "while ( $_ =~ m{^$line1\n$line2\n}mg ) { print $&; }" "$file"