Это команда, которую я использовал для поиска совпадений (queryString) в php файлах, в текущем каталоге, с grep, без учета регистра и отображения соответствующих результатов в строке:
find . -iname "*php" -exec grep -iH queryString {} \;
Есть ли способ передать только имя файла совпадений другому script?
Я мог бы запустить команду -exec дважды, но это кажется неэффективным.
Что бы я хотел сделать в Mac OS X, тогда на самом деле "раскрыть" этот файл в поисковом устройстве. Я думаю, что смогу справиться с этой частью. Если мне пришлось отказаться от встроенных совпадений и просто позволить grep отображать имена файлов, а затем передать это третьему script, это тоже будет хорошо - я бы решил.
Но я даже не уверен, как передать вывод (сопоставленные имена файлов) в другое место...
Помощь!:)
Разъяснение
Я хотел бы показать каждый из файлов в окне искателя - так что я, вероятно, не буду использовать флаг -q
и остановиться на первом.
Я собираюсь запустить это на консоли, в идеале я хотел бы видеть распечатки inline, напечатанные там, а также возможность подключить их к другому script, например, oascript (applescript, чтобы открыть их в искателе). Вот почему я использовал -H
- потому что мне нравится видеть имя файла и совпадение.
Если бы мне пришлось согласиться только на использование -l
, чтобы имя файла было легче передать в другой script, это тоже было бы хорошо. Но я думаю, что после изучения ответа ниже от @Charlie Martin, что xargs могут быть полезны здесь, когда вы делаете оба одновременно с одной командой find и командой grep.
Я сказал bash, но на самом деле я не против, если это нужно запустить как /bin/sh
вместо этого - я не слишком много знаю о различиях, но знаю, что есть некоторые важные.
Спасибо всем за ответы, я собираюсь попробовать некоторые из них в командной строке и посмотреть, смогу ли я заставить их работать, и тогда я думаю, что смогу выбрать лучший ответ. Оставьте комментарий, если вы хотите, чтобы я уточнил что-то еще.
Еще раз спасибо!