Извлечь строки между двумя строками соответствия, исключив совпадающие строки

Конечно, вы можете отформатировать логический том LVM с помощью BTRFS и разместить группу томов LVM в контейнере LUKS.

НО , и это очень важно, вы должны избегать создания моментального снимка LVM указанного логического тома. И в случае создания моментального снимка LVM вы НИКОГДА не должны позволять одновременно активировать исходный логический том и логический том моментального снимка.

Do NOT

make a block-level copy of a Btrfs filesystem to another block device... use LVM snapshots, or any other kind of block level snapshots... turn a copy of a filesystem that is stored in a file into a block device with the loopback driver...

... and then try to mount either the original or the snapshot while both are visible to the same kernel.

Why?

If there are multiple block devices visible at the same time, and those block devices have the same filesystem UUID, then they're treated as part of the same filesystem.

If they are actually copies of each other (copied by dd or LVM snapshot, or any other method), then mounting either one of them could cause data corruption in one or both of them. - BTRFS gotchas

Шифрование с помощью BTRFS ничем не отличается от шифрования с другими файловыми системами; Он прозрачен для файловой системы, поскольку обрабатывается LUKS.

0
08.01.2021, 22:28
3 ответа

Это просто не та работа, для которой лучше всего подходит sed. Попробуйте это:

$ tac file | awk '/unzip/{exit} f; /logout/{f=1}' | tac
cd /u/opt/install
./reqe21.sh
sqlplus admin/<password> @req.sql

или если по какой-то причине вы предпочитаете использовать только один инструмент:

$ awk '/logout/{f=0} f{rec=rec $0 ORS} /unzip/{rec=""; f=1} END{printf "%s", rec}' file
cd /u/opt/install
./reqe21.sh
sqlplus admin/<password> @req.sql
4
18.03.2021, 22:37

Инвертирование ввода с последующим запуском на нем sed. Используя оператор диапазона, мы выбираем блок, а затем обрезаем границы, повторно применяя то же регулярное выражение.

$ tac |
sed -e '/logout/,/unzip/!d;//!d' |
tac
cd /u/opt/install
./reqe21.sh
sqlplus admin/<password> @req.sql

Или, если мы хотим получить результат без какой-либо другой полезности. мы продолжаем накапливать блок (, ограниченный распаковкой и выходом из системы )в пространстве хранения. Затем перезапишите удержание, если мы снова увидим строку разархивирования. Th7s предоставит нам последний ограниченный блок разархивирования для выхода из системы. Затем мы обрезаем границы. Это все Posixly sed

sed -e '
  /\n/{
    P;/\n.*\n/D;d
  }
  /unzip/,/logout/!d
  H;/unzip/h;/logout/!d
  g;D
' file
0
18.03.2021, 22:37
tac filename| awk '/logout/{f=1}/unzip/{f=0}f && !/logout/'|tac

выход

cd /u/opt/install
./reqe21.sh
sqlplus admin/<password> @req.sql
0
18.03.2021, 22:37

Теги

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