Поскольку дальнейшего ответа не последовало, я предлагаю просто заменить весь скрипт на
grep -F -f text.txt file.txt >out.txt
Это предполагает, что входные данные из text.txt представляют собой просто строки, которые нужно проверить, а не регулярное выражение, на что указывают сообщения об ошибках, заменяющие $STRING на 000.. из-за этого -f считывает каждую строку из файла, в то время как -F просто обрабатывает их как простые строки. Все, что затем совпадает с файлом file.txt, будет отправлено в out.txt.
В ответ на комментарий dave _thompson _085 ниже, это все еще может быть полезно, если есть абзацы с известной структурой, то есть искомая строка находится в определенной строке в каждом абзаце, тогда -B
и -A
можно также использовать для печати количества строк до и после совпадения.
«Атака» может означать разные вещи, кстати, допустим, что если вы хотите заблокировать внешний доступ к хосту в вашей локальной сети, то цепочка переадресации достаточно.
Естественно, если хост будет скомпрометирован, вы не сможете ничего сделать с брандмауэром, чтобы заблокировать возможную активность в -локальной сети, поскольку в этот момент это будет P2P.
Здесь лучше не раскрывать общедоступный IP-адрес.