Список файлов имя файла и номер строки
Привет я пытаюсь найти мой каталог 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