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

Следующий grep

grep -r -e -n coll *

отобразит

fullpath/filename:  <tag-name>coll</tag-name>

Я хотел бы знать, какая строка имеет следующий текст, я попытался добавить -n, но это не сработало , Я попытался добавить | grep -n *, но это сделало что-то странное.

То, что я хотел бы видеть (меня не волнует формат), это

fullpath/filename:10:  <tag-name>coll</tag-name>
17
задан 12 August 2018 в 22:37

3 ответа

Вы должны поставить -e в конце списка опций: grep -rne coll *

0
ответ дан 12 August 2018 в 22:37

К grep шаблон в определенном файле, и получают согласующие отрезки длинной линии:

grep -n <Pattern> <File> | awk -F: '{ print $1 }' | sort -u

или использование cut, как предложено @wjandrea:

grep -n <Pattern> <File> | cut -f1 -d: | sort -u

, где

  • <Pattern> заключенный в кавычки шаблон шарика (используют опцию -E для regexp);
  • <File> файл, которым Вы интересуетесь;
  • первый канал awk ... фильтры номера строки в выводе grep (перед : на каждой строке);
  • второй канал гарантирует, чтобы номера строки только появились однажды.
0
ответ дан 12 August 2018 в 22:37

нет необходимости в -r & amp; -e!

получить номер строки шаблона!

grep -n "pattern" file.txt

, если вы хотите получить только номер строки в качестве вывода, добавьте к нему еще одну команду grep!

grep -n "pattern" file.txt | grep -Eo '^[^:]+'
0
ответ дан 12 August 2018 в 22:37

Другие вопросы по тегам:

Похожие вопросы: