Я хотел бы сократить числа между квотами идентификатора Mod_sec: [id "31231"]. Как правило, это не сложно, но когда я пытаюсь извлечь все идентификаторы из нескольких отчетов, таких как:Cut Mod_Security ID с sed/awk
[Wed Oct 19 15:31:33.460342 2016] [:error] [pid 16526] [client 67.22.202.121] ModSecurity: Access denied with code 400 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/usr/local/apache/conf/includes/mod_security2.conf"] [line "4968"] [id "000784"] [hostname "example.org"] [uri "/"] [unique_id "[email protected]@HQAAAAI"]
[Wed Mar 19 15:31:33.460342 2016] [:error] [pid 16526] [client 67.22.202.121] ModSecurity: Access denied with code 400 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/usr/local/apache/conf/includes/mod_security2.conf"] [line "4968"] [id "9"] [hostname "example.org"] [uri "/"] [unique_id "[email protected]@HQAAAAI"]
[Wed Mar 19 15:31:33.460342 2016] [:error] [pid 16526] [client 67.22.202.121] ModSecurity: Access denied with code 400 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/usr/local/apache/conf/includes/mod_security2.conf"] [line "4968"] [id "00263"] [hostname "example.org"] [uri "/"] [unique_id "[email protected]@HQAAAAI"]
Я попытался несколько команд, таких как:
cat asd | awk '/\[id\ "/,/"]/{print}'
cat asd | sed -n '/[id "/,/"]/p'
и многие другие, но они делают не печатать требуемые идентификаторы, а скорее включать дополнительный вывод, поскольку шаблон сопоставляется несколько раз. Обычно я могу сделать что-то вроде:
cat asd | egrep -o "\"[0-9][0-9][0-9][0-9][0-9][0-9]\""
, а затем вырезать вывод еще раз, но это не работает в случаях, когда идентификатор не содержит 6 номеров.
Я не знаком со всеми опциями awk, sed и egrep и, похоже, не нашел решения.
То, что я хотел бы быть распечатаны из выше истории:
000784
9
00263
Может кто-то пожалуйста, помогите. Заранее спасибо.
Thank yo u so much Sundeep, как sed, так и grep-решения работают отлично. Я боролся с этим уже 2 недели. Благодарим вас за быстрый ответ и объяснение! –
@AngelAsenov рад, что это помогло ... вы можете проверить документацию по этим темам на SO для примеров, если вам интересно ... например: https://stackoverflow.com/documentation/awk/topics и https: // stackoverflow .com/documentation/regex/topics – Sundeep
Представленные темы, как представляется, дают очень полезную информацию. Большое вам спасибо. –