Фон рабочего стола MATE не перерисовывается

Обычный вариант использования для меня — изменить вывод конвейера команд так, чтобы десятичные числа печатались с разделителями тысяч. Вместо того, чтобы писать функцию или сценарий, я предпочитаю использовать метод, который я могу настроить на лету для любого вывода из конвейера Unix.

Я обнаружил, что printf(, предоставленный Awk ), является наиболее гибким и запоминающимся способом достижения этой цели. Символ апострофа/одинарной кавычки определяется POSIX как модификатор для форматирования десятичных чисел и имеет то преимущество, что он учитывает локаль -, поэтому он не ограничен использованием запятых.

При выполнении команд Awk из оболочки Unix могут возникнуть трудности с вводом одиночной -кавычки внутри строки, ограниченной одинарными -кавычками (, чтобы избежать расширения оболочки позиционных переменных, например,$1). В этом случае я считаю, что наиболее читаемый и надежный способ ввести одинарную кавычку -— это ввести ее как восьмеричную управляющую последовательность (, начинающуюся с\0).

Пример:

printf "first 1000\nsecond 10000000\n" |
  awk '{printf "%9s: %11\047d\n", $1, $2}'
  first:       1,000
 second:  10,000,000

Имитация вывода конвейера, показывающая, какие каталоги используют больше всего дискового пространства:

printf "7654321 /home/export\n110384 /home/incoming\n" |
  awk '{printf "%22s: %9\047d\n", $2, $1}'
  /home/export: 7,654,321
/home/incoming:   110,384

Другие решения перечислены в Как избежать одинарной кавычки внутри awk .

Примечание :, как указано в Print a Single Quote , рекомендуется избегать использования шестнадцатеричных escape-последовательностей, поскольку они не работают надежно в разных системах.

0
08.02.2021, 13:31
1 ответ

В верхней строке меню MATE выберите System> About MATE. Вы должны получить всплывающее окно -, показывающее номер версии MATE. Нажмите Close. Фон рабочего стола теперь должен снова работать и быть черным.

0
18.03.2021, 22:31

Теги

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