在 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参数传递给它。

相关内容