РЕЗЮМЕ
sg [-] [group [-c ] command]
ОПИСАНИЕ
The sg command works similar to newgrp but accepts a command. The command will be executed with the /bin/sh shell.
Как Вы видите, sg принимает команду после переключателя-c (мы можем сказать, что путем рассмотрения резюме), который будет выполняться с помощью/bin/sh оболочку.
На основе (и несколько упрощая) ответа ludvik02 sed
:
AA='"abcd efgh" "ijkl mnop" "qrst uvwxyz"'
AA1=$(echo "$AA" | sed -r 's/^([^"]*"){1}([^"]*).*/\2/')
AA2=$(echo "$AA" | sed -r 's/^([^"]*"){3}([^"]*).*/\2/')
AA3=$(echo "$AA" | sed -r 's/^([^"]*"){5}([^"]*).*/\2/')
(Note that this ↑ is different on every line.)
Опция -r
для sed
включает расширенные регулярные выражения.
Мы должны использовать { n }
,
что означает n
вхождений предшествующего regex.
([^ «] *»)
- соединение (группа) regex, которое соответствует
любое количество символов, отличное от «
, заканчивается »
.
Пример входной последовательности может совпадать с этим regex до шести раз
(потому что он содержит шесть символов "
);
с ...
вставлены для различения промежутков между последовательностями,
эти вхождения являются
"abcd efgh" ... "ijkl mnop" ... "qrst uvwxyz"
↑↑--------↑↑----↑↑--------↑↑----↑↑----------↑
1 2 3 4 5 6
Совпадение любого нечетного числа (например, трех) вхождений, которые потребляют
все до и включая n
(например, третий) символ «
, т.е. символ »
в начале
( n + 1 )/2)
й (например, второй) процитированный ряд.
Затем ([^ "] *)
соответствует (и группирует) всему (но не включая)
символ ( n + 1)
й "
,
то есть символ "
в конце второго процитированного ряда.
Так что эта группа (вторая группа) соответствует второй процитированной последовательности.
Наконец, . *
потребляет остаток входного ряда.
Тогда мы заменим всю входную строку на \2
, значение второй группы:
"abcd efgh" ... "ijkl mnop" ... "qrst uvwxyz"
↑↑--------↑↑----↑⇑=======⇑⇈≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡⇈
1 2 3
↑---------------↑⇑=======⇑⇈≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡⇈
\1 \2 (unnamed)
-121--102671- Вы сказали это в комментарии:
выше последовательности в переменной. Мне нужно извлечь каждый раздел (первый, второй, третий) и сохранить его разные переменные
Поэтому давайте просто разделим его.
IFS=\" #set the shell's field separator
set -f #don't try to glob
set -- $var #split on $IFS
var1=$2 var2=$4 var3=$6 #yay
unset IFS #restore something like a sane default
Это не будет обрабатывать последовательностей, которые могут содержать обратную косую черту, хотя. Надеюсь, это не проблема, потому что мне не нравится это делать.
-121--102670-В
Имеются повторяющиеся определения массивов в mdadm.conf
. Замените (или прокомментируйте) блок из трех строк, следующих за # определениями существующих массивов MD
, чтобы каждый массив был объявлен последней проверкой.
Типичным сценарием для RAID-массивов, которые не могут быть построены на загрузке, является то, что они не были обновлены в initramfs
или не набор запускаться во время загрузки. При очень быстром сканировании руководства, на которое вы ссылаетесь , эти шаги не упоминаются, но я могу ошибаться. В системах Debian команды:
dpkg-reconfigure mdadm # Выберите «все» диски для запуска при загрузке
update-initramfs -u # Обновление существующих initramfs
В mdadm.conf
вам нужен только UUID, например, так
ARRAY /dev/md0 UUID=d8b8b4e5:e47b2e45:2093cd36:f654020d
Все остальные условия могут помешать сборке RAID .
Для (устаревшей) автоматической сборки вам потребуются:
fd
0,90
raidautorun / dev / disk
Если автоматическая сборка не удалась, dmesg
должен содержать некоторые указатели на то, что пошло не так.
В общем, если возможно (и если initramfs все равно задействован), вам следует придерживаться нового формата метаданных по умолчанию 1.2
и иметь initramfs с mdadm
, mdadm. conf
настроен.