Cambiar el nombre dentro del archivo crontab

Cambiar el nombre dentro del archivo crontab

Quería cambiar el nombre del archivo, agregando más detalles para poder obtener la respuesta a mi pregunta:

Tengo las siguientes líneas en 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

Quiero cambiar los nombres de los archivos ulimit_nofile_status_20480.shy ulimit_nproc_status_20480.sha ulimit_nofile_status_40960.shy ulimit_nproc_status_40960.shrespectivamente.

En otras palabras, quiero cambiar el nombre de 20480 a 40960.

Probé los siguientes comandos, pero no funcionaron para mí.

crontab -l | sed 's#/_20480\.#/40960.#' | crontab -
crontab -l | sed 's/\<_20480\>/40960/' | crontab -
"sed -i s//40960/" crontab -e

Respuesta1

Tus expresiones regulares son una locura. Lo siguiente debería funcionar.

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

Su intento requirió que hubiera una barra antes del guión bajo, pero, por supuesto, no hay ninguna en su crontabarchivo, por lo que la expresión regular no coincidía con nada.

Dice que desea reemplazar 20480con 40960, pero en varios de sus intentos parece que también desea eliminar el guión bajo antes del número. Si eso es correcto, obviamente elimínelo de la cadena de reemplazo.

Supongo que sedno reconoces \<lo que de otro modo habría sido un buen intento.

El último de tus intentos está tan alejado de cualquier sintaxis válida que no creo que pueda comentarlo de manera significativa. Se analiza como si intentara utilizar la cadena sed -i s//40960/como nombre de un comando, con los argumentos crontaby -lpasándole como parámetros.

información relacionada