Переименовать внутри файла crontab

Я хотел переименовать имя файла, указав более подробную информацию, чтобы я мог получить ответ на свой вопрос:

у меня есть следующие строки в crontab

00 * * * * /home/@@@@/ulimit_nofile_status_20480.sh >> /export/####/$$$$$/ulimit_nofile_status.txt

00 * * * * /home/@@@@/ulimit_nproc_status_20480.sh >> /export/####/%%%%/ulimit_nproc_status.txt

Я хочу изменить имена файлов ulimit_nofile_status_20480.sh и ulimit_nproc_status_20480.sh to ulimit_nofile_status_40960.sh и ulimit_nproc_status_40960.sh соответственно.

другими словами, Я хочу переименовать 20480 в 40960

Я пробовал ниже команд, но они не работали для меня.

crontab -l | sed 's#/_20480.#/40960.#' | crontab -
crontab -l | sed 's/<_20480>/40960/' | crontab -
"sed -i s//40960/" crontab -e
2
задан tripleee
30.03.2023 8:07 Количество просмотров материала 2443
Распечатать страницу

1 ответ

ваши регулярные выражения сумасшедшие. Следующее должно работать.

crontab -l | sed 's#_20480\.#_40960.#' | crontab -

ваша попытка требовала косой черты перед подчеркиванием, но, конечно, в вашем crontab файл, поэтому регулярное выражение ничего не совпало.

вы говорите, что хотите заменить 20480 С 40960 но некоторые из ваших попыток выглядят так, как будто вы также хотите удалить подчеркивание перед номером. Если это правильно, очевидно, удалите его из замены строка.

Я полагаю, ваш sed не признает \< что бы была хорошая попытка.

последняя из ваших попыток настолько удалена от любого допустимого синтаксиса, что я не думаю, что могу комментировать его содержательно. Он анализирует, как попытка использовать строку sed -i s//40960/ как имя команды, с аргументами crontab и -l передается в качестве параметров.

1
отвечен tripleee 2023-03-31 15:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх