Иногда легче пройти мимо чем пытать топик стартера и вытягивать клещами исчерпывающую информацию.
А значит, чтобы получить быстрый ответ на вопрос лучше придерживаться общепринятой последовательности изложения проблемы.
1. Пример вводных данных
2. Что нужно получить на выходе
3. Что для этого предпринималось
Например:
Парсинг файла в командной строке
У меня есть файл, привожу часть для примера:
^[[:digit:]]+.+[[:digit:]]+.+[[:digit:]]+.+[[:digit:]]*$
Что то типа этого. Точнее не могу, далеко от компа, возможно точку экранировать придётся. Можно обычным bash, а sed-ом удалять по номеру строки которая соответствует этому условию.
Подскажите пожалуйста, как мне убрать подобные строки?
Для начала — формализовать, чем они отличаются от тех, которые убирать не надо. Хотя бы на человеческом языке. Потом уже можно переходить к регулярным выражениям.
Как абстрактно. Вы хотите отфильтровать запросы по статус-коду 200 или по IP? Если судить по первому сообщению, то вы выбрали конкретные IP, а сейчас хотите фильтровать по коду, так что вам в итоге требуется?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
#!/bin/bash
while read line
do
if [[ $line =~ ^[[:digit:]]+.+[[:digit:]]+.+[[:digit:]]+.+[[:digit:]]+[[:space:]]+[[:digit:]]*$ ]] ; then
echo $line
#sed "/${line}/d" -i file.conf
fi
done <file.conf
Последний раз редактировалось ormorph 04.08.2022 18:43, всего редактировалось 1 раз.
Вам слов жалко, чтобы сформулировать вопрос? Тогда не удивляйтесь, если кто-то пожалеет слов, чтобы ответить, даже если каким-то образом догадается, чего Вы хотите.
И выглядело это в одной из догадок так как надо было искать какую-то закономерность в самом ай пи адресе и составить по этому отличаю регулярное выражение.