perl -nE 'BEGIN {$/="\nEND\n"} say /(START.*test.*)/s'
Как указывает @bobbel, замените say
на print
, чтобы избежать пустых разделителей строк.
Не должно быть никакой разницы. Направьте вывод через cat -v
, который будет экранировать непечатаемые символы -.
Возможно, у вас есть специальные настройки локали, которые изменяют то, что делает -print0
. По крайней мере с моими настройками en_US.UTF-8 разницы нет. Возможно, добавьте вывод locale
к вашему вопросу.
Возможно, ваш тест с ruby заставляет ruby интерпретировать сам \0
, а find
даже не выполняется.