重新命名 crontab 檔案內的名稱

重新命名 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.shulimit_nofile_status_40960.shulimit_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

答案1

你的正規表示式太瘋狂了。以下應該有效。

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

您的嘗試要求在下劃線之前有一個斜杠,但是當然,您的文件中沒有斜杠crontab,因此正則表達式不匹配任何內容。

您說您想替換2048040960,但您的幾次嘗試看起來您還想刪除數字之前的下劃線。如果這是正確的,顯然將其從替換字串中刪除。

我推測您sed沒有意識到\<這本來是一個很好的嘗試。

您的最後一次嘗試與任何有效語法相距甚遠,我認為我無法對其進行有意義的評論。它解析為嘗試使用字串sed -i s//40960/作為命令的名稱,以及參數crontab-l作為參數傳遞給它。

相關內容