Другой awk
подход. Поскольку awk
может принимать несколько символов в качестве разделителей полей, это можно сделать за один шаг:
$ awk -F'[-_]' '{print $3$4$5$6}' <<<"$var"
20161014111250
В качестве альтернативы в Perl:
$ perl -pe 's/.+?_.+?_//; s/[-_]//g' <<<"$var"
20161014111250
или
$ perl -F_ -ane 's/-//g for @F; print @F[2..$#F]' <<<"$var"
20161014111250
Я использую здесь строки , но если ваша оболочка их не поддерживает, просто echo $ var | command
для каждой команды выше.
Оба резервного хранилища и сохранения в являются атрибутами/флагами, которые можно установить при создании окна с помощью XCreateWindow()
. Тем не менее, это всего лишь подсказки для сервера X11, они не включены по умолчанию и на самом деле не стоят проблем с современным оборудованием.
Как правило, когда (часть )фонового окна становится видимой, сервер X11 отправляет событие Expose
клиенту X11, что должно привести к его перерисовке. Поскольку это всего лишь подсказки, сервер X11 может по-прежнему отправлять Expose
, даже если клиент установил как .backing_store = Always
в окне, так и CWSaveUnder
во всплывающих окнах, которые он открывал поверх него.
Существуют также интерфейсы, которые позволяют клиенту запрашивать, реализует ли сервер резервное хранилище и сохранение в:XDoesBackingStore()
и XDoesSaveUnders()
.
Оконный менеджер не имеет ко всему этому никакого отношения; он не перерисовывает никаких окон (, кроме собственных :заголовков, кнопок закрытия ).
If not, does it repaint each of the stacked window one by one in case of a random window removal?
Большинство популярных настольных компьютеров используют более новое расширение XCOMPOSITE. Все содержимое окна визуализируется в выключенных -экранных буферах, поэтому все они доступны диспетчеру композитинга без необходимости запрашивать приложения для их перерисовки.
Вот выдержка с официального сайта:
This extension causes a entire sub-tree of the window hierarchy to be rendered to an off-screen buffer. Applications can then take the contents of that buffer and do whatever they like. The off-screen buffer can be automatically merged into the parent window or merged by external programs, called compositing managers. Compositing managers enable lots of fun effects.