Узнайте, на какой строке в текстовом файле соответствует слово

Есть ли способ узнать, на какой строке текстового документа есть какое-то слово, которое соответствует шаблону, например, с grep или что-то еще. Благодарю.

2 Solutions collect form web for “Узнайте, на какой строке в текстовом файле соответствует слово”

Да, это возможно с опцией -n grep .

От man grep :

 -n, --line-number Prefix each line of output with the 1-based line number within its input file. 

Например, если у вас есть файл с именем file.txt имеющий:

 this is foo test and this is bar test 

Теперь вывод grep -n "test" file.txt :

 $ grep -n "test" file.txt 2:foo test 4:bar test 

Здесь 2 и 4 указывают номера строк, в которых найден шаблон.

Подход grep является самым простым, но все они будут печатать номер строки строки, соответствующей pat :

  1. Perl

     perl -lne 'print $. if /pat/' file 
  2. AWK

     awk '/pat/{print NR}' 
  3. СЕПГ

     sed -n '/pat/=' file 
  • Диапазон значений grep (/ sed / awk)
  • Добавить столбцы в текстовый файл с заданным интервалом в Bash
  • Катить все файлы в папке, включая имя файла, используя цикл for?
  • Как удалить строки в файле с определенной позиции до конца файла
  • Как печатать текст между первым вступлением пары строк?
  • Как свернуть 'grep -c <токен> * .h * .cpp' в один счет?
  • Сопоставьте начало линии с чем-то там?
  • Как я могу найти и заменить только в том случае, если совпадение составляет целое слово?
  • Извлечение жетонов из строки текста
  • Извлечь абзац, разделенный на *** с помощью AWK
  • Пустой файл без grep, впоследствии обрабатывающий его как двоичный файл
  • Linux и Unix - лучшая ОС в мире.