grep регистрируют строки определенного идентификационного запроса

[117396] Могу порекомендовать [117695] CronSandbox[117696], чтобы попробовать, лучше быть осторожным, чем сожалеть.

Выход там также подтверждает, что вы правы.[117399]

1
31.03.2015, 01:11
3 ответа

Раствор Perl:

perl -ne '$id = "6d87de8e-1276-4496-b49d-dd4cd375cbe4";
          print if $match = (/IDA:$id/ .. /IDA:(?!$id)/)
                and $match !~ /E0$/
         ' *.log

Объяснение:

  • / Regex1 /. / Regex2 / возвращает true для строк между матчами.
  • IDA: (?! $ ID) означает IDA: не соответствует на $ id.
  • Последняя строка в диапазоне обозначается суффиксом E0 , которое проверяет условия, поэтому последняя строка (одна с другой IDA) не печатается.

Чтобы включить имена файлов и номера строк, используйте

print "$ARGV:$.:$_"

и добавьте следующее перед закрытием цитата:

; $. = 0 if eof
3
27.01.2020, 23:17

Это печатает соответствующие данные (каждый из которых предшествует номер строки) Для файлов, названных в качестве IDA:

awk 'match($0,/IDA:[^ ]+/) { print NR, $0 > substr($0,RSTART+4,RLENGTH-4) }' logfile
1
27.01.2020, 23:17

SED .

SED .

SED .

SED :

sed -n ':2;/IDA:6d87de8/{p;/exception/{:1;n;/IDA:/!{p;b1};b2}}'

Вывод Scrpt Suppres ( -N -N), до тех пор, пока не соответствует соответствующей IDA ( / IDA: 6D87DE8 / ), который будет напечатан ( p ). Затем Pattern (Line) будет проверяться на присутствие «Exption» и, если это, начнет работать с следующей строкой ( N ). Если следующая строка не состоит IDA: Линия будет напечатана, и скрипт переходит к следующей строке (цикл начался в : 1 точка). Если линия CoSist IDA: Сценарий начинается с начала (цикл на уровне : 2 : 2 точка)

Если вы хотите перечислить линии - выходные линии NL или grep -n ". *" и труба его к скрипту .

1
27.01.2020, 23:17

Теги

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