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

Проверьте использование последней версии удара. Если Вы, сообщаете об ошибке; обязательно укажите точно, где Вы получили двоичный файл удара при установке существующего двоичного файла, или какой компилятор и конфигурацию времени компиляции Вы использовали и где Вы получили источник при компиляции удара собой. Также упомяните свою точную версию AIX и свою аппаратную архитектуру. Упоминание, как воспроизвести ошибку, как Вы сделало здесь, конечно.


“Прерванный системный вызов” не является действительно ошибкой. Это - ошибочное состояние (EINTR) это говорит вызывающей стороне, что системный вызов не был выполнен вообще (в противоположность предпринятому и неудавшемуся). Нормальный путь к приложению для контакта с EINTR должен повторно выполнить системный вызов, возможно, после выполнения некоторой другой обработки, такой как выполнение обработчика сигналов. EINTR существует, чтобы дать шанс приложению выполнять неотложные задачи, в то время как оно занято блокирующимся системным вызовом. Можно ли читать, Когда проверить на EINTR и повторить вызов функции? и Использование повторно используемые функции для более безопасной обработки сигнала для большего количества дополнительного чтения.

Bash видит EINTR возвращенный системным вызовом в месте, где это не ожидало это. Это сообщает об этом как об ошибке универсальным способом. Это - ошибка, возможно из-за причуды или ошибки операционной системы.

2
16.03.2015, 01:29
2 ответа

Да, это возможно с помощью -N -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 Тест "file.txt :

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

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

6
27.01.2020, 21:51

GREP GREP Подход - это самый простой, но все они будут напечатать номер строки соответствия линии PAT :

  1. Perl

     Perl -lne 'Print $.  Если / pat / 'file
     
  2. awk

     awk '/ pat / {print nr}'
     
  3. SED

     SED -N '/ PAT / =' Файл
     
2
27.01.2020, 21:51

Теги

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