У меня есть файл со следующим текстом:Perl файл разборе
1152 39.955534 138.59.102.xxx -> 172.27.37.xxx HTTP 581 HTTP/1.1 200 OK (JPEG JFIF image)
1188 42.626056 35.183.215.xxx -> 172.27.37.xxx HTTP 474 HTTP/1.1 302 Moved Temporarily
1214 42.661556 159.70.229.xxx -> 172.27.37.xxx HTTP 1496 HTTP/1.1 200 OK (GIF89a)
...<truncated>
Я пытался (неисправного) для синтаксического анализа его кода Perl ниже. Я хотел бы напечатать оба IP-адреса в строке минус мусор. Строка ниже:
perl -anle '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ and print $&' < my_input_file
строка выводит только первый столбец IP-адресов: 138.59.102.xxx 35.183.215.xxx 159.70.229.xxx
, но не для печати 172.27. xxx.xxx. Любая помощь приветствуется, если bash или Python работают, я не против.
Вам не нужен '-a' - он позволяет * autosplit * и заполняет массив' @ F'. Также лучше всего передать файл в качестве параметра * в perl, а не нажимать его через STDIN. – Borodin