Umbenennen innerhalb der Crontab-Datei

Umbenennen innerhalb der Crontab-Datei

Ich wollte den Dateinamen umbenennen und mehr Details eingeben, um eine Antwort auf meine Frage zu erhalten:

Ich habe die folgenden Zeilen in 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

Ich möchte die Dateinamen ulimit_nofile_status_20480.shin und ulimit_nproc_status_20480.shbzw. ändern .ulimit_nofile_status_40960.shulimit_nproc_status_40960.sh

Mit anderen Worten, ich möchte 20480 in 40960 umbenennen

Ich habe die folgenden Befehle ausprobiert, aber sie haben bei mir nicht funktioniert.

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

Antwort1

Ihre regulären Ausdrücke sind verrückt. Folgendes sollte funktionieren.

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

Für Ihren Versuch wäre ein Schrägstrich vor dem Unterstrich erforderlich gewesen, in Ihrer crontabDatei ist aber natürlich keiner vorhanden, sodass der reguläre Ausdruck zu keinem Ergebnis geführt hat.

20480Sie sagen, Sie möchten durch ersetzen, 40960aber bei mehreren Ihrer Versuche sieht es so aus, als ob Sie auch den Unterstrich vor der Zahl entfernen möchten. Wenn das richtig ist, entfernen Sie ihn natürlich aus der Ersetzungszeichenfolge.

Ich vermute, Sie sederkennen es nicht \<, was ansonsten ein guter Versuch gewesen wäre.

Ihr letzter Versuch ist so weit von jeder gültigen Syntax entfernt, dass ich nicht glaube, dass ich dazu sinnvolle Kommentare abgeben kann. Er wird als Versuch analysiert, die Zeichenfolge sed -i s//40960/als Namen eines Befehls zu verwenden, wobei die Argumente crontabund -lals Parameter an ihn übergeben werden.

verwandte Informationen