Парсинг пар скобок, содержащих скобки-эскейпы

Этот вопрос, вероятно, лучше задать на форумах Antergos, но я могу поделиться личным опытом работы с Arch:

  • Как правило, лучше обновлять часто, чем редко. Вы поймаете любые проблемы по мере их появления и будете решать их по очереди, а не позволять им накапливаться.

  • Обновляйте по своему усмотрению. Нет особых причин придерживаться какого-то определенного графика обновлений; все зависит от вашей системы и ваших потребностей. Например, я обнаружил, что системы Arch с меньшим количеством установленных пакетов, как правило, не нуждаются в частом обновлении. На 4 системах Arch, которые я использую регулярно, я обновляюсь каждый раз при входе в систему (до одного раза в день), что, кажется, работает довольно хорошо.

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

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

Проблема, возникшая у вас с Cinnamon, скорее всего, связана с плохой работой по упаковке со стороны сопровождающих пакетов, а не со сбоем в Arch-стиле кровоточащих, скользящих обновлений. Лично у меня были некоторые проблемы с Cinnamon на Arch, и он никогда не работал так хорошо, как другие DE (я использовал Gnome, MATE и i3 с гораздо меньшими проблемами).

И последнее, чем я хотел бы поделиться: если вы знаете, что у вас есть проблемные пакеты, которые ломаются при обновлении, вы можете добавить их в директиву IgnorePkg в /etc/pacman.conf. Мне приходится делать это редко, и почти всегда это игнорируемый пакет AUR (мне нравится использовать помощник AUR). Однажды мне пришлось внести ядро в черный список в IgnorePkg на ноутбуке, потому что проприетарный драйвер для подсветки не работал на последних версиях ядра (к счастью, это было исправлено в конечном итоге, и я смог вернуться к получению обновлений ядра). Я бы не рекомендовал использовать этот подход, если нет крайней необходимости.

2
05.01.2017, 17:58
2 ответа

Если вы хотите сопоставить что-то, чему не предшествует, вам нужен отрицательный ретроспективный анализ. sed не поддерживает просмотр вперед и назад, но Perl поддерживает.

echo 'Hello _{world \} \}} _{foo bar}' | perl -npe 's/_\{(.+?)(?<!\\)}/*\1*/g'

Будет выведено:

 Hello * world \} \} * * foo bar * 
 
1
27.01.2020, 21:59

Если обратная косая черта означает «избежать следующего символа» (будь то фигурная скобка, еще одна обратная косая черта или что-то еще, кроме конца строки), тогда вы можете «пропустить» следующий символ следующим образом:

sed -r 's/_\{((\\.|[^}\\])+)\}/*\1*/g

Если обратная косая черта имеет только особое значение перед фигурной скобкой, вам необходимо " пропускать "первый символ без обратной косой черты после каждого выполнения 1 или более обратных косых черт:

sed -r 's/_\{((\\+[^\]|[^}\\])+)\}/*\1*/g'
3
27.01.2020, 21:59

Теги

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