Получить номер строки при использовании grep



Я использую рекурсивный grep для поиска файлов для строки, и все соответствующие файлы и строки, содержащие эту строку, печатаются на терминале. Но можно ли получить номера строк этих строк тоже??



ex: в настоящее время то, что я получаю /var/www/file.php: $options = "this.target", но то, что я пытаюсь сделать-это /var/www/file.php: 1142 $options = "this.target";, где 1142 будет номер строки, содержащей эту строку.



синтаксис, который я использую для grep рекурсивноsudo grep -r 'pattern' '/var/www/file.php'



еще один вопрос, как получаем ли мы результаты, не равные шаблону. Как и все файлы, но не те, которые имеют определенную строку?

793   6  

6 ответов:

grep -nr SEARCHTERM file1 file2 ...

номера строк печатаются с grep -n:

grep -n pattern file.txt

чтобы получить только номер строки (без соответствующей строки), можно использовать cut:

grep -n pattern file.txt | cut -d : -f 1

строки не содержащие шаблон печатаются с grep -v:

grep -v pattern file.txt

Если вы хотите только номер строки этого:

grep -nr Pattern file.ext | gawk '{print }' FS=":"

пример:

$ grep -nr 9780545460262 EXT20130410.txt | gawk '{print }' FS=":" 
48793
52285
54023
grep -A20 -B20 pattern file.txt

поиск шаблона и показать 20 строк после и до шаблона

grep-nr" строка поиска " каталог

Это дает вам строку с номером строки.

чтобы отобразить результаты с номерами строк, вы можете попробовать это

grep "word to search for" /path/to/file/file -nr

результат должен быть примерно таким:

linenumber: data data data word to search for data data

Comments

    Ничего не найдено.