fly4life
написал 28 сентября 2006 года в 09:48 (1033 просмотра)
Ведет себя
как мужчина; открыл 182 темы в форуме, оставил 5340 комментариев на сайте.
Есть файл примерно следующего содержания:
fly4life@fly4life:~> cat test.txt [ip] #aol.com ip= 205.188.142.182 filterdefault= drop [ip] #aol.com ip= 64.12.50.151 filterdefault= drop [ip] #rambler.ru ip= 81.19.70.3 filterdefault= drop [ip] #ranbler.ru ip= 87.242.100.18 filterdefault= drop [ip] #sf.net ip= 66.35.250.203 filterdefault= drop
Как вывести на экран содержимое этого файла без, например, секции:
[ip] #ranbler.ru ip= 87.242.100.18 filterdefault= drop
Вывести только эту секцию легко (с помощью того же grep):
fly4life@fly4life:~> grep -A2 -B1 ranbler.ru test.txt [ip] #ranbler.ru ip= 87.242.100.18 filterdefault= drop fly4life@fly4life:~>
А вот как бы ммм… проинвертировать чтоли этот вывод?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Быстрое решение. Может не очень красивое.
Ненужную секцию кладем в 'remove.txt'
sdiff удаляет самую первую строку [ip], оставляя при этом её в удаляемой секции =(. Т.е. в результате полчается:
Пока обошёл это, увеличив значение параметра '-B' у grep до 2 =) (у меня это сработало, поскольку в настоящем файле test.txt в самом его начале есть ещё одна секция [ip], которая никогда удаляться не будет и никакой пустой строки перед ней нет).
Master, спасибо! =)
не bash, так perl…
Если разделитель записей ' \n' (пробел + \n):
Если пустая строка:
Там, где нужно решать описываемую задачу, perl совсем не обязательно есть =(, в отличие от sed + awk.
Вторая тоже то, что нужно. Только вот как-то странно оно удаляет ненужные строки, хотя работает…