Добрый день.
Есть файл, в котором надо удалить строки, содержащие в себе "1", но только при условии, что в этой же строке будет иметься символ "!".
Как это сделать? Гуглю по sed, но не могу найти логическое И.
Пример:
sed -e '/1/d' -i /var/log/test.log
Но так он удаляет любую строку, где есть "1", а надо чтобы делал выборку строк, где есть и "1", и восклицательный знак.
Заранее спасибо.
Редактор SED: Удаление с использованием логического И
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- bagas
- лейтенант
- Сообщения: 922
- Зарегистрирован: 2010-08-18 19:49:01
- Откуда: Воронеж
- Контактная информация:
Re: Редактор SED: Удаление с использованием логического И
попробуй так
Код: Выделить всё
sed -e '/1.*!/d' /var/log/test.log
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.
Блог о BSD системах.
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2009-10-08 20:01:54
Re: Редактор SED: Удаление с использованием логического И
Жаль, что работает только в последовательности 1, потом !, но огромное спасибо))))
Небольшое замечание, чтобы другим было проще. Правильно будет:
sed -e '/1.*!/d' -i /var/log/test.log
Еще раз спасибо!))
Небольшое замечание, чтобы другим было проще. Правильно будет:
sed -e '/1.*!/d' -i /var/log/test.log
Еще раз спасибо!))
- bagas
- лейтенант
- Сообщения: 922
- Зарегистрирован: 2010-08-18 19:49:01
- Откуда: Воронеж
- Контактная информация:
Re: Редактор SED: Удаление с использованием логического И
Какая последовательность нужна?Zerropull писал(а):Жаль, что работает только в последовательности 1, потом !, но огромное спасибо))))
Небольшое замечание, чтобы другим было проще. Правильно будет:
sed -e '/1.*!/d' -i /var/log/test.log
Еще раз спасибо!))
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.
Блог о BSD системах.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Редактор SED: Удаление с использованием логического И
Код: Выделить всё
sed '/[^1]*1[^!]*!/d; /[^!]*![^1]*1/d' -i /var/log/test.log
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
-
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
- Контактная информация:
Re: Редактор SED: Удаление с использованием логического И
Также подойдет конструкция:
Код: Выделить всё
grep -vE "((1.*!)|(!.*1))"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.