Есть ли способ найти строку или фразу рекурсивно во всех файлах в папке из командной строки, чтобы вывод был похож на поведение поиска Sublime Text 2? Например, путь к имени файла, в котором была найдена строка, и часть текстового блока, в котором она содержится?
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.