Bash regex ошибка обработки строк

Из MAN MAN MOTE :

Mount-A [-T Type] [-O OPTPLIST]

(обычно приведен в загружении), вызывает все файловые системы, упомянутые в FSTAB (из правильного типа и / или имея или не имеющие правильные варианты), которые можно установить, как указано, за исключением тех, чьи строка содержит ключевое слово NOAUTO .

Из SystemD.Mount Документация :

NOAUTO, AUTO

с NOAUTO , это устройство не будет добавлено в качестве зависимости -fs.target . Это означает, что он не будет монтироваться автоматически во время загрузки, если только оно не вытащено каким-то другим устройством. Опция Авто имеет противоположное значение и имеет значение по умолчанию.

Как вы можете видеть, любой / etc / fstab / etc / fstab line с NOAUTO не будет автоматически установлен при использовании команды Mount -a .

У вас есть NOAUTO в вашем / etc / fstab . Если бы вы удалили это, то он должен работать.

0
01.12.2014, 13:32
2 ответа

%% делает шарик соответствие, не regex. Это означает $ {нечто %%} удалит самое долгое запаздывающее сопоставление строк единственный пробел, который, конечно, является просто символом одиночного пробела, и $ {нечто %% *} удалит самую длинную запаздывающую последовательность запуск с пробелом.

Вы, вероятно, будете более обеспеченным использованием awk для разделения последовательности на поля.

2
28.01.2020, 02:36

После решения https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable Я исправил свой скрипт Таким образом:

echo "8:X${BASH_REMATCH[1]%"${BASH_REMATCH[1]##*[![:space:]]}"}X"
eval "$1='${BASH_REMATCH[1]%"${BASH_REMATCH[1]##*[![:space:]]}"}'"

Это двойная строка манипуляций, а первая / внутренняя часть удаляет все, кроме конечных пробелов. Эта строка затем используется для отключения тех же пробелов в конце исходной строки.

0
28.01.2020, 02:36

Теги

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