Есть ли способ найти строку или фразу рекурсивно во всех файлах в папке из командной строки, чтобы вывод был похож на поведение поиска Sublime Text 2? Например, путь к имени файла, в котором была найдена строка, и часть текстового блока, в котором она содержится?

1 ответ1

2

Я предполагаю, что вы используете систему * nix. Если вы просто хотите, чтобы файлы в текущей папке, выполните

$ grep -C 3 foo *
bar.txt-This is line one
bar.txt:This is line two, which contains foo
bar.txt-This is line 3

Если вы также хотите вернуться в подпапки, используйте

grep -rC 3 foo

Подробности:

   grep,  egrep,  fgrep,  rgrep - print lines matching a
   pattern


  -C NUM, -NUM, --context=NUM
          Print  NUM  lines of output context.  Places a
          line containing a group separator (--) between
          contiguous  groups of matches.  With the -o or
          --only-matching option, this has no effect and
          a warning is given.
   -R, -r, --recursive
          Read   all   files   under   each   directory,
          recursively;  this  is  equivalent  to  the -d
          recurse option.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .