2009-10-07 3 views
0

У меня есть подозрение, что я, вероятно, следует с помощью ПП или задать расширенное вместо этого, но то, что я должен использовать в основном ищетGrep - поиск «? < П» в начале файла

<? 

в начало файла? Я пытаюсь найти все файлы, которые содержат PHP короткий открытого тега, так как я мигрировал кучу старых скриптов на относительно нового сервера с последней PHP 5.

Я знаю, регулярное выражение, вероятно, будет '/^<\?\n/'

+1

Я думаю, что вы ответили на свой вопрос –

+0

так? это не работает? – SilentGhost

+0

Вы просто хотите найти все теги PHP? –

ответ

6

Я RTFM и в конечном итоге с помощью:

grep -RlIP '^<\?\n' * 

Р аргумент включен полный Perl Compatible регулярных выражений.

+0

отметьте этот вопрос как ответ, чтобы мы могли продолжить свою жизнь;) –

+0

«Вы можете принять свой собственный ответ через 2 дня». :( –

+0

Но пока вы можете получить значок самообучающего для фактического RTFM.* clicks + 1 * :-P – Tomalak

1

если вы беспокоитесь о концах окон, просто добавьте \r?.

4

Если вы ищете для всех PHP короткие теги, используйте negative lookahead

/<\?(?!php)/ 

будет соответствовать <?, но не будет соответствовать <?php

[meder ~/project]$ grep -rP '<\?(?!php)' . 
+0

+1 для размышлений об отрицательных взглядах и указании -P тоже. –

0
grep '^<?$' filename 

Не знаю, если это отображается правильно. Должно быть

grep '^ <? $ 'имя_файла

0

Вы имеете в виду буквальную «обратную косую черту» или вы имеете в виду новую строку?

Для первого:

grep '^<?\\n' [files] 

Для последнего:

grep '^<?$' [files] 

Обратите внимание, что Grep будет искать все строки, так что если вы хотите, чтобы найти спички только в начале файла, вам вам нужно либо отфильтровать каждый файл до его первой строки, либо попросить grep распечатать номера строк, а затем искать только соответствия строк.

2
find . -name "*.php" | xargs grep -nHo "<?[^p^x]" 

^х, чтобы исключить начальный тег XML

+0

Работает прекрасно и не требует, чтобы grep перекомпилировался с поддержкой регулярных выражений Perl – udog

Смежные вопросы