grep печатают путь файла прямого доступа при выполнении рекурсивного поиска

попробуйте уничтожают команду с с-9 сигналами если sudo kill 'pid' не работает: sudo kill -9 2092

4
01.05.2014, 02:08
3 ответа

Я бы предложил использовать комбинацию find, xargs и grep:

 cd top-dir
 find . -print -name 'pom.xml' -print0 | xargs -0 grep -l pattern

Я вставил опцию -print0 / -0, чтобы специальные символы в найденных каталогах были защищены и правильно обработаны.

Выше будут перечислены имена файлов относительно топ-дира, совпадающего с шаблоном.

.
3
27.01.2020, 20:58
grep --with-filename -rI -3 org.hibernate pom.xml

From the man page:

       -H, --with-filename
          Print  the  file  name for each match.  This is the default when there is more than one file to
          search.
0
27.01.2020, 20:58

Другим решением является использование шаблона globstar, то есть рекурсивного шаблона, в сочетании с опциейgrep-Hдля включения имени файла в вывод.

shopt -s globstar
grep -H org.hibernate **/pom.xml

В отличие от рекурсивного grep(-R), при таком подходе опция -Hне включает в вывод путь к файлу.

Подсказка :может оказаться полезным добавить shopt -s globstarк вашему .bashrc, чтобы навсегда разрешить рекурсивное подстановывание.

0
15.03.2020, 13:52

Теги

Похожие вопросы