С этой записи от нашего crontab
1 3 1 * * find /var /log /tomcat /* -mtime +61 -type f -delete
Я хочу сопоставить 5-й пробел, чтобы отделить часть команды от части поля времени. Cron может иметь разные форматы, поэтому я хочу, чтобы DOW соответствовал солнцу или 0.
Регулярное выражение, которое я использую в vim, которое соответствует первому пробелу, заменяется на заполнитель "T".
:g/\*/s/\(\ \)\{1\}/T/
Что мне не хватает, чтобы соответствовать n-й или 5-й пробел. Это ничего не делает
:g/\*/s/\(\ \)\{5\}/T/
Я хочу создать разбивку при запуске команд в cron, чтобы попытаться сбалансировать нагрузку на наши серверы.
добавление
Я понимаю, что я делал не так с вышеуказанным поиском / заменами.
(\ \)\{5\}
Это расширяется до пяти пробелов друг за другом, а не 5-го пробела, поскольку между пробелами есть символы.
Это работает до пятого пробела, но доза замены «\1» не включает весь подобранный атом.
:g/*/s/\([0-9A-Za-z*\/,]* \)\{5}/\1 T /
после замены он оставляет следующее.
* T find /var/log/tomcat/* -mtime +61 -type f -delete
я ищу
1 3 1 * * T find /var/log/tomcat/* -mtime +61 -type f -delete