Это может выходить за рамки вопроса, но причина, по которой awk
не поддерживает обратные ссылки, заключается в том, что awk
всегда использовались настоящие регулярные выражения, т.е. такие, которые могут быть реализованы без рекурсии конечным -конечным автоматом. Такая реализация не может поддерживать обратные ссылки в любой форме (, она может поддерживать группы захвата, хотя реализация не является прямой -прямой ).
Идея с awk
, насколько я понимаю, заключается в том, что вы должны использовать регулярное выражение для прямого времени -и памяти -ограниченных совпадений, и его C -как тьюринг -полный язык для чего-то более сложного, чем это.
«Регулярные выражения» из perl/pcre/etc, напротив, превратились в компактный синтаксис для описания рекурсивных процедур сопоставления, которые могут быть реализованы только на машине Тьюринга. Это имеет последствия для безопасности :любое окно поиска и т. д., где ненадежный пользователь может ввести такое регулярное выражение, является приглашением к атаке типа «отказ в обслуживании»; никто не может знать, сколько времени или памяти займет такой матч, и возможны только грубые меры, такие как жесткие произвольные ограничения на него и запрет упорных свиней.
Вот старая статья Расса Кокса, где все это описано более подробно.
Для запуска команды при запуске через crontab следует использовать @reboot
строку:
см.info crontab
string meaning
------ -------
@reboot Run once, at startup.