sed " /^admin::common::passwords:$/,/^[^ ].*:$/ { /^ $ACCOUNT:$/ { N;d } }" < "$YAML"
То есть заключите вашу удаляющую строфу в раздел, соответствующий между
admin :: common ...
и следующимany-section:
.Помните, что
. Символ
, часто встречающийся в именах пользователей, также является оператором регулярного выражения, поэтомуjohn.doe
будет соответствоватьjohn.doe
, но также, например,johnWdoe
.Обратите внимание, что приведенное выше не будет работать, если у вас есть два последовательных раздела
admin :: common :: passwords
, а учетная запись для удаления находится во втором разделе.Если как Отеус указывает , разделы будут выполняться до следующей строки, которая имеет такое же или меньшее количество начальных пробелов, и ваш раздел
admin :: common :: passwords:
может есть несколько ведущих пробелов, то, вероятно, пора переключиться на другой язык, напримерawk
:awk -v account="$ACCOUNT" ' match($0, /[^ ]/) && RSTART <= n {n = 0} n && NF == 1 && $1 == account ":" {getline; next} !n && /^ *admin::common::passwords:$/ { match($0, /[^ ]/) n = RSTART } {print}' < "$YAML"
из https://awesomewm.org/wiki/Awesome_and_Xfce4
Перейдите в: Настройки -> Сеанс и запуск -> Сеанс
И измените Стиль перезапуска
из xfwm4 в Никогда
Затем перейдите к Автозапуск приложения
и добавьте awesome
Он должен работать после перезапуска xfce