А как насчет:
$ echo 1.000000000000002, 0.999999999999999, 999.000999000999|
sed 's/\([09]\)\1\{2,\}/\1..\1/g'
1.0..02, 0.9..9, 9..9.0..09..90..09..9
Это [09]
, за которым следует сам ( \ 1
является обратной ссылкой на [09]
, захваченной в группе захвата \ ([09] \)
), повторенной 2 или более раз. Обратите внимание, что он отличается от [0-9] \ {3, \}
, который соответствует 0000
, но также 0909
.
Не все синтаксисы регулярных выражений поддерживают обратные ссылки.Стандартные базовые регулярные выражения, используемые sed
do, стандартные расширенные регулярные выражения (например, в egrep
) не поддерживают его, хотя некоторые реализации ERE поддерживают его как расширение . Это случай GNU sed
с параметром -r
/ -E
(другое нестандартное расширение), с которым вы можете использовать sed -E 's / ([09]) \ 1 {2,} / \ 1 .. \ 1 / g'
здесь.
Perl и совместимые регулярные выражения работают, и похоже, что регулярные выражения MATLAB также поддерживают их , и даже поддерживают именованные обратные ссылки , как в perl
.
От help wait
:
При наличии опции -n ожидает завершения следующего задания и возвращает статус завершения.
Таким образом, вы можете использовать wait -n
в своем сценарии, чтобы узнать, когда любое из заданий завершилось.
Не существует такой вещи, как «отказ контрольной группы». Группы управления - это просто коллекции, используемые для ограничения ресурсов. Они не «подводят».
Что здесь происходит, так это неспособность правильно спроектировать службу. Если у вас есть несколько процессов-демонов, которые нужно отслеживать, и вы хотите, чтобы диспетчер служб перезапускал их по отдельности, если они завершаются, тогда следует определить несколько служб.
systemd
Дом ужасов . Часто задаваемые ответы.