Ku pamięci: egrep - wyszukiwanie '

Dodane 12 kwietnia 2012 o 19:28:55 w kategorii ' Ogólne, Techblog '.

Konfiguracja niektórych serwerów apache nie pozwala na stosowanie skrótowego znacznika początku skryptu '<?' zamiast pełnego (np. dla skryptów php znacznikiem otwierającym jest '<?php'). Efektem może być wyrzucenie do klienta treści skryptu, zamiast wyniku jego działania.

Linie zawierające sam znacznik można szybko odnaleźć za pomocą "extended" grep:
egrep -r '<\?\s*$' ./*
opcja 'r' odpowiada za wyszukiwanie rekursywne. Zastosowane tu wyrażenie regularne dopasowuje wszystkie wystąpienia '<?', po których wystąpi dowolną ilość razy lub nie wystąpi w ogóle znak biały (spacja, tabulator itd.), a potem koniec linii.

Pozostałe wystąpienia (z dowolnym tekstem w tej samej linii) można znaleźć następująco:
egrep -r '<\? ' ./*
Pytanie dlaczego nie działa egrep '<\?\s+' ./*?

TODO: wyrażenie regularne obejmujące oba przypadki




(c) 2006, Powered by JoggerPL.