вывести содержимое во втором вхождении

вывести содержимое во втором вхождении

У меня есть файл журнала, который выводит следующие данные:

[+] [1.1.1.1] LOG HERE

Я хотел бы знать, как извлечь IP-адрес из журнала и отправить его в «чистый» файл, в котором указан только IP-адрес.

решение1

С awk, протестировано на GNU Awk 4.1.3, не уверен, что не будет работать с другими версиями

$ cat ip.txt 
[+] [1.1.1.1] LOG HERE

$ awk -F'[][]' '{print $4}' ip.txt 
1.1.1.1
  • -F'[][]'установить разделитель полей ввода как [или]
  • {print $4}распечатать 4-е поле


При sedусловии, что входной файл имеет последовательный шаблон, как показано в примере

$ sed 's/.*\[//; s/].*//' ip.txt 
1.1.1.1
  • s/.*\[//удалить от начала строки до последнего [в строке
  • s/].*//из измененной таким образом строки удалите все от начала ]до конца строки

Связанный контент