Список файлов имя файла и номер строки
Привет я пытаюсь найти мой каталог rails с помощью grep. Я ищу конкретное слово, и я хочу, чтобы grep распечатал имя файла и номер строки. Есть ли флаг grep, который сделает это для меня? Я пытался использовать комбинацию-n и-l, но они либо распечатывают имена файлов без номеров, либо просто выгружают много текста на терминал, который не может быть легко прочитан.
ex:
grep -ln "search" *
Мне нужно передать его в awk?
3 ответа:
Я думаю
-l
является слишком ограничительным, поскольку он подавляет вывод-n
. Я бы предложил-H
(--with-filename
): печать имени файла для каждого матча.grep -Hn "search" *
если это дает слишком много выходных, попробовать
-o
для печати только той части, которая соответствует.grep -nHo "search" *
grep -rin searchstring * | cut -d: -f1-2
это бы сказать, поиск рекурсивно (для строки
searchstring
в этом примере), игнорируя регистр, и отображать номера строк. Выход из этого grep будет выглядеть примерно так:/path/to/result/file.name:100: Line in file where 'searchstring' is found.
Далее мы передаем этот результат в команду cut с помощью двоеточия
:
как наш разделитель полей и отображение полей с 1 по 2.когда мне не нужны номера строк, которые я часто использую
-f1
(только имя файла и путь), а затем передать вывод вuniq
, так что я только смотрите каждое имя файла один раз:grep -ir searchstring * | cut -d: -f1 | uniq