Можно использовать grep -r -i -A1 "insert.into" | grep -i -B1 select
-r
, который будет выполнять поиск по всем файлам в текущем каталоге и рекурсивно во всех подкаталогах.
-A1
печатает одну строку A после соответствующей строки,
-B1
печатает одну строку B перед соответствующей строкой.
Таким образом, первый приведенный выше grep напечатает все строки, соответствующие insert.into
плюс следующий;второй grep сохранит только те пары, у которых select
есть во второй строке.
(-i
, чтобы игнорировать регистр)
Затем вы можете добавить | grep -i insert.into | cut -d: -f1 | sort -u
, чтобы получить толькоИмена файлов.
Обратите внимание, что это предполагает некоторые предположения:
- параметры
-A/-B
доступны только в Linux / GNU, а не в простых Unix, таких как HPUX. - , если выесть строки, содержащие как
insert.into
, так и select
, и вы получите необычный вывод.