Как к grep блокам? Или я должен использовать awk/ack?

Мое предложение: Переключатель к qemu/qemu-kvm. Это может моделировать устройства массового хранения USB к виртуальным машинам. Посмотрите здесь для некоторых примеров.

6
31.03.2014, 04:43
4 ответа
[119055].
6
27.01.2020, 20:23

OUTPUT

  • Это должно быть намного быстрее, чем

  • awk[119747] (я думаю)[119546] благодаря

    sed's

    stream operations.

  • Это было одним из самых менее сложных из того, что я делал - как только я обернул голову вокруг него. Это одна из первых веток, которые мне удалось обойтись без расширенного регекса GNU - это должно быть довольно портативно.

    Эти ветки дважды - в начале есть achor :s и якорь

     $ nc proxy.example.com 8080
    -> CONNECT mail.example.com:587 HTTP/1.0
    ->
    <- HTTP/1.0 200 Connection Established
    <- Proxy-agent: Apache/2.2.19 (Debian)
    <-
    <- 220 mail.example.com ESMTP Badger badger badger badger badger postfix postfix!
    -> ehlo grawity-pc
    <- 250-mail.example.com
    <- 250-PIPELINING
    <- 250-SIZE 10240000
    <- 250-STARTTLS
    <- 250-ENHANCEDSTATUSCODES
    <- 250-8BITMIME
    <- 250 DSN
    -> quit
    <- 221 2.0.0 Bye
    
    :l

    для подписчика. Это работает, так как оператор

    n

    удаляет предыдущую строку из шаблона-пространства

    sed[119757] при вытягивании новой.

    1. Как только

    2. sed

    3. находит ваш

    4. "$ENTRY"

    , он устанавливает ветку [119561] [119762]:l[119763] abel, [119562] печатает линию и тянет новую. Затем

    sed

    проверяет, начинается ли новая строка со словосочетания

    'Entry'

    и в этом случае она ответвляется обратно на

    : s[119769]tart[119568] и снова начнёт сканирование его входного текста на предмет указанного вами

    "$ENTRY,"

    , иначе он вернётся только к

    :l[119773]abel[119572] и повторит

    p[119775]rint, [119776]n[119777]ext, [119778]/check/

    operation.

    Эта команда сводится к следующему:

    3
    27.01.2020, 20:23
    [119297] Вы также можете использовать [119621]cregrep[119622]:

    Это приведет к созданию всех строк, начиная с той, которая содержит [119623]234238[119624], и заканчивая той, которая содержит слово [119625] Entry[119626].

    Для ввода примера вы можете получить:

    1
    27.01.2020, 20:23
    [12189]awk[119727], наверное, хороший инструмент, так как проблема линейно-ориентированная.[12190]Я бы использовал этот вариант решения @HaukeLaging, который имеет меньшую избыточность в коде. Каждая строка, которая начинается с [119728]Entry[119729] очищает флаг, но заголовок для конкретной записи, которая вам нужна, устанавливает флаг. Если флаг установлен, выполните действие по умолчанию при печати строки.[12191]
    1
    27.01.2020, 20:23

    Теги

    Похожие вопросы