Удалите пустой раздел конфигурации

Закрытый ключ представляет Ваши идентификационные данные. Иметь ли различные ключи на различных машинах, зависит от того, полагаете ли Вы, “что я на машине” и “я на машине B” те же идентификационные данные.

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

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

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

3
26.03.2011, 14:25
4 ответа

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

awk '
  /^ *\[/ {section=$0}    # recall latest section header
  /^ *[^[#]/ {            # setting line
    if (section != "") {print section; section="";}  # print section header if not yet done
    print
  }
' ~/.vlc/vlcrc >~/config/vlc/vlcrc
1
27.01.2020, 21:29
  • 1
    ; действительно ли возможно сделать это оперативное? –  l0b0 08.04.2011, 16:46
  • 2
    @l0b0: awk '…' vlcrc >vlcrc.new && mv vlcrc.new vlcrc. Или awk '…' vlcrc | sponge vlcrc. Или переключитесь на Perl (perl -i -pe '…'). –  Gilles 'SO- stop being evil' 08.04.2011, 22:15

Как альтернатива awk остроте, можно сохранить awk сценарий в файл. Вот немного более сложная версия сценария:

#!/usr/bin/awk -f

# No section seen yet.
BEGIN { section="" }

# Match and save current section header.
/^\[.*\]$/ {
        section=$0;
        next;
}

# Ignore blank and comment-only lines.
/^[[:space:]]*(#.*)?$/ {
        next;
}

# By default do this.
{
        # Print section header if not already printed.
        #if(length(section)) {
        if(section != "") {
                print section;
                section="";
        }

        # And print current line.
        print;
}

Просто сохраните его в файл как conf-filter.awk и отметьте его исполняемый файл с chmod +x conf-filter.awk.

1
27.01.2020, 21:29

Я понимаю, что файлы конфигурации по умолчанию выглядят грязными, но в будущем когда необходимо изменить некоторое значение конфигурации, полезно иметь в распоряжении все заголовки и комментарии. От долгосрочного администрирования точка зрения, обычно желательно для хранения этих файлов в их исходной форме. Это также позволяет Вам отслеживать изменения, поскольку Вы обновляете... каждую новую версию программы, изменит конфигурацию по умолчанию, и если Вы внесли как можно меньше изменений в Вашем, Вы сможете легко сравнить инструменты использования как diff или vim -d видеть, что изменилось.

Наличие awk сценария как люди имеет Вас, запись хороша быстро поглядеть на то, какие значения устанавливаются, но это должно использоваться, чтобы посмотреть на, не на самом деле изменить и сохранить Ваши файлы конфигурации.

1
27.01.2020, 21:29

Для хранения только строк с текстом я лично использовал бы grep . вместо этого.

-1
27.01.2020, 21:29
  • 1
    я, вероятно, неправильно истолковал вопрос. Я теперь вижу, что Вы хотите удалить из и включая [заголовок] до следующего [заголовок], если существуют только комментарии и промежуточный пробел. –  MattBianco 31.03.2011, 09:47

Теги

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