Многострочный поиск, соответствующий регулярному выражению

Ваша SD-карта — это не просто пассивная память, такая как DVD (или компакт-диск, или дискета ). SD-карты включают в себя контроллер:

[ [ flash memory] <=> [controller] ] <=> [your computer]

There are different types of flash memory, and I'm guessing they need specific drivers...

Детали обрабатывает контроллер внутри SD-карты. Это позволяет разрабатывать новые карты, в которых флэш-память имеет другие детали, и старые компьютеры/устройства могут использовать их без каких-либо модификаций.

Возможно, самое главное, это облегчает производителям продажу карт, использующих новую технологию :-).

Запись всех нулей в /dev/sdXне приводит к саморазрушению контроллера. Точно так же запись всех нулей на более традиционный жесткий диск не разрушает контроллер внутри жесткого диска.

0
07.03.2021, 05:32
1 ответ

Вы были почти там. Незначительная деталь, которую регулярные выражения grep не любят размещать внутри косой черты /.../

.
  • Еще одна вещь: мы включаем режим многострочного сопоставления (?m), благодаря чему мы можем использовать знак вставки ^для обозначения начала строки (положения справа от новой строки ), а также самого начала строки. строка, к которой также можно получить доступ через \A.
  • grep выводит найденные фрагменты с суффиксом NULL, поэтому нам нужно их удалить.
  • Отдых — это все, что вам нужно, так что вы в любом случае знаете, как сопоставляется ваше регулярное выражение.

grep -Pzo '(?m)((^Host server2\n)( +.+\n*)+)' file | tr -d '\0'
1
18.03.2021, 22:26

Теги

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