0
Я сделал свое регулярное выражение, и оно отлично работает на моем инструменте создания регулярных выражений. Но когда я пытаюсь использовать свое регулярное выражение в командной строке, оно не работает, или, по крайней мере, кажется, что я не могу его использовать.
мое регулярное выражение:
.*\[(GET|POST|OPTIONS|PUT|DELETE)\].*
соответствует Вызовите метод независимо от того, где он находится. Я хочу, чтобы он отображался в простом файле, содержащем все вызовы.
Я перепробовал много команд, одна из которых:
cat myfile.txt | awk /'\[(GET|POST|OPTIONS|PUT|DELETE)\]/ {print $1}'
, но он возвращает меня первый столбец, хотя подходящей группой является метод.
Кто-нибудь может мне помочь, пожалуйста?
Я могу привести пример, если это необходимо.
примеры:
два возможных входа:
32.45.53.01, 32.32.32.543, 21.32.54.675, 21.32.54.779 161.21.34.56 [10 / Mar / 2020: 13: 04: 14 +0100] [ HTTP / 1.1] [GET] [-: //yahoo.com/webapp/wcs/stores/servlet/libero/home] 302 - EL = [22ms, -] WAS = [mediaworld_b2 c: 3213] - WAS = [-] - - [спам]
10.40.23.483 10.8.21.321 [10 / Mar / 2020: 15: 18: 06 +0100] [HTTP / 1.1] [GET] [-: // google- preprod.test.com/sda/v1/ticrcv/TSY-JKidsahjsdaAO-A-JYVS5gGFxZ8PY8J-GRs0g-GOB2C] 200 108 EL = [17ms, -] WAS = [-] - -
, и выход в обоих случаях должен быть просто:
GET