РЕДАКТИРОВАТЬ: То, что вычеркнуто, является временным исправлением. Проблема возникла снова вскоре после этого. Перейдя в «Настройки»> «Основные»> «Разные параметры» и отключив «Включить поддержку индикаторов», я решил проблему. Я просмотрел журнал ~ / .cinnamon / glass.log
и обнаружил, что один из индикаторов (клиент owncloud) перезапускается каждые 30 секунд, что вызывает проблему.
Хорошо, я решил проблему.
Переименуйте ~ / .cinnamon
в ~ / .cinnamon-bak
.
По крайней мере, в моем случае моя версия ~ / .cinnamon
существует уже давно. Удаление этой папки (что привело к ее воссозданию) устранило проблему, и больше никаких всплесков задержки каждые 30 секунд!
Я просто поставил свое решение с помощью sed
, даже если его просят специально для AWK, я считаю это решение более компактным и прямым:
GNU Sed (проверено в CentOS):
sed -n '1!p' addresses.csv | sed -r 's!^([0-9]*(\sbis|\ster)?),?(.*)$!\1,\3!g;s!(.*)([^,])(,[0-9]*)$!\1\2,\3!g'
OS-X / BSD Sed
sed -n '1!p' addresses.csv | sed -E 's!^([0-9]*( bis| ter)?),?(.*)$!\1,\3!g;s!(.*)([^,])(,[0-9]*)$!\1\2,\3!g'
Первая команда sed берет все строки, кроме первой (заголовок).
Для второго sed
я использую замены:
^ : Starting text.
[0-9]* : all numbers (0, 1, ... 99, 999, 99999999 and so on)
( bis| ter)? : optionally followed by " bis" or " ter" (notice the space before); group 2
,? : optionally followed by a comma
(.*)$ : the rest of the string until the end ($) (group 3)
!\1,\3 : replaced by first group (number + extension) - comma - third group
Обратите внимание, что вторая группа - это скобки для 'bis' и 'ter', а первая группа - это ([0-9 ] * (bis | ter) {0,1})
Вторая замена предназначена для нормализации запятых (если она не заканчивается ,, \ d
, мы добавляем дополнительную запятую.
Замечание @ruffp совершенно верно. Однако, в дополнение к этой проблеме можно сказать:
awk -F, '!$2 { sub(/^([0-9]*)/, "&,"); sub(/,,/, ","); } 1' addresses