
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.sh
in und ulimit_nproc_status_20480.sh
bzw. ändern .ulimit_nofile_status_40960.sh
ulimit_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 crontab
Datei ist aber natürlich keiner vorhanden, sodass der reguläre Ausdruck zu keinem Ergebnis geführt hat.
20480
Sie sagen, Sie möchten durch ersetzen, 40960
aber 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 sed
erkennen 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 crontab
und -l
als Parameter an ihn übergeben werden.