Получить номер строки при использовании 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'
еще один вопрос, как получаем ли мы результаты, не равные шаблону. Как и все файлы, но не те, которые имеют определенную строку?
6 ответов:
номера строк печатаются с
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 "word to search for" /path/to/file/file -nrрезультат должен быть примерно таким:
linenumber: data data data word to search for data data
Comments